Swift语言是乔布斯留给我们的一门新的编程语言 用于ios编程 ,相比于OC语言 它是对编程更加简单,灵活和有趣.下面我就写下我初学Swift做的一些笔记 比较杂但很实用
同C语言输出相似 Swift输出实用print
print("hellow world")
Swift 语以空格结尾 不需要分号
所有使用let定义一个常量 不能重新赋值
Swift支持隐式类型推断 可以根据初值 自动的判断Swift的数据类型
print(a)
let b : String = "nihao"
print(b)
let c = 20.1```
#Swift不支持隐式类型转换 不能让俩个不一样的数据类型做四则运算
#Swift强转的格式 数据类型(需要强转的数据)
```let d = Double(a) + c
print(d)
let e : String = "changsha"
let f : String = "yucu"```
#Swift里面支持运算符的重载 会根据语境自动判断运算符的含义
```let f2 = e + f
print(f2)```
#变量
```//Swift里使用var定义一个变量
var a = 10
//可以赋一个新值
a = 100
print(a)
//如果需要定义一个初始值为nil的变量的话,格式 : var + 变量名 + ":" + 变量类型? = nil
var b : String? = nil
b = "student"
print(b)```
#数组
```//Swift数组里面的数据类型必须是一样的
//AnyObject Swift1.0版本
////NSObject Swift2.0版本
let array = [1, 2, 3, 4, 5, "a"]
//数据初始化的第二种方式 先指定数据类型
let array1 : [Int] = [1, 2, 3, 4]
var array2 = [1, 2, 3, 4, 5]
//数组的增删改查
//插入一个数
array2.insert(8, atIndex: 2)
////插入一个数组
var array3 = [6, 7, 8, 9]
array2.insertContentsOf(array3, at: 2)
//数组的删
//删除数据的同时 保存内存空间
//Swift里边的BOOL是一个枚举 只有true flase 俩种参数
array2.removeAll(keepCapacity: true)
//按区间删除
let range : Range = Range (start: 1, end: 5)
array2.removeRange(range)
//数组的改
array2[1] = 10
var array4 = [11, 12, 13, 45]
//运算符重载
var array5 = array4 + array3```
#字典
```//一个简单的字典
let array = [1, 2, 3, "1"]
let dictionary = [1 : 2, 3 : 4, "a" : "b"]
//Swift的字典里面 所有的key 所有的value都必须是同一种类型的
let dictionary1 : [Int : String] = [1 : "a", 2 : "b"]
//可变的字典
var dictionary3 = [1 : 2, 3 : 4, 5 : 6]
//为不存在的值做赋值操作 就是增加操作
dictionary3[7] = 8
print(dictionary3)
//修改对应key的value值
dictionary3[1] = 100
print(dictionary3)
//删除对应key 的value值
dictionary3.removeValueForKey(1)
print(dictionary3)
//查找
print(dictionary3[3])```
#元组
```//使用 () 表示定义一个元组 元组里面没有数据类型的概念
let type = ("罗峰", "DHM")
//访问 元组的第一张方式 直接通过下标访问
print(type.0)
//访问元组的第二种方式 通过类访问
let type2 : (name : String, nicName : String) = type
print(type2.name)```
#循环结构
```//for循环
let array = [1, 2, 3, 4, 5]
for var i = 0; i < array.count; i++ {
print("i = \(i)")
}
//while循环Swift写法
var i = 0
while i < 10 {
i++
print(i)
}
//repeat while 和 do while一样
//Swift1.0版本的时候叫做do while Swift2.0版本的时候叫做repeat while
repeat {
i++
print(i)
}while i < 10
//for in 循环 Swift写法
let array2 = [1, 2, 3, 4, 5, 6]
for var a in array2 {
print(a)
}```
#循环分支
```var timer : String? = nil
if timer != nil {
print("timer存在")
} else {
print("timer不存在")
}
let value = 0
switch value {
case 0:
print(value)
case 1:
print(value)
default:
print("超了")
}
//0...10 表示的是 从0开始到10结束 并且包含10
//0..<10 表示的是 从0开始到10结束 并且不包含10
switch value {
case 0...10:
print(value)
case 11...20:
print(value)
default:
print("超了")
}
let point = (10, 10)
switch point {
case (10, 10):
print(point)
case (_, _):
print(point)
}
//判读
let value3 = 0
let value2 = 100
//switch value = 0 value < 10 成立
switch value3 {
case 0 where value2 < 10:
print(value3)
case 0 where value2 > 10:
print("正确")
default:
print("错误")
}```
//函数
```//无参无返回值函数
//func (关键字) test (函数名) "()" (参数列表) -> Void(返回值类型)
func test() -> Void {
print("我是第一个函数")
}
test()
//无参有返回值
func test1() -> String {
return "我是第二个参数 无参有返回值"
}
//接收函数的返回值
let str = test1()
print(test1())
//返回一个Int 类型的数组
func test2() -> Array<Int> {
return [1, 2, 3]
}
print(test2())
//返回一个OC的数组
func test3() -> NSArray {
return [1, 2, "a", "b"]
}
print(test3())
//有参无返回值的函数
//参数格式 参数名 + ":" + 参数类型
//-> Void可以省略
func test4(name : String, sex : String) -> Void {
print("我叫\(name),我的性别是\(sex)")
}
test4("罗峰", sex: "未知")
//有参数有返回值
//参数是一个数组格式 : 参数名 + ":" + Array<数据类型>
func test5(phoneNumber : Array<Int>) {
}
//无参有多个返回值
func test6() -> (String, String) {
return ("罗峰", "18")
}
//使用元组得出返回值
let type = test6()
print(type.0)
//有参有返回值
func test7(name : String, age : Int) -> (String, Int) {
return (name, age)
}
//使用元组得出返回值
let type1 = test7("罗峰", age: 18)
print("我叫\(type.0), 今年\(type.1)岁")
//inout函数
// Swift函数里面的参数 默认是使用let修饰的 是不可以更改的
func test8(inout number : Int) {
number = 200
}
var a = 5
test8(&a)
print(a)
//函数嵌套
//第一层
func test10() {
//第二层
func test11() {
//第三层
func test12() {
//第四层
func test13() {
//第五层
func test14() {
//第六层
func test15() {
//...可以无限定义下去
}
}
}
}
}
}```
##好了 这篇就写这么多了 更多内容将会在下篇博客书写