本文章纯粹是中文版《The Swift Programming Language》的学习笔记,所以绝大部分的内容都是文中有的。本文是本人的学习笔记,不是正式系统的记录。仅供参考以下还是有很多没看懂、不确定的地方,我会以“存疑”的注解指出。在此感谢中文版翻译者,这极大地加快了 Swift 的学习速度。Reference:原版:The Swift Programming Language中文版:Swift 3 编程语言
Swift 提供了以前没有的类型:元组可选项类似于 nil 指针,但不仅限于类,可用在所有的类型上,甚至包括 Int 这样的基础类型。
基本类型整数位宽Int 类型与处理器位宽相同。同理 UInt。这一点类似于 C 里面的 long 类型。另有:Uint8, Int8, Uint16, Int16, Uint32, Int32, Uint64, Int64每个类型都会有 .min 和 .max 属性。数字值前缀二进制:0b八进制:0o十六进制:0x指数:1.25e2 = 125.0。还有其他的几种指数,忽略了,不记。个人觉得比较实用的是二进制 0b,但是又觉得一般只有在操作硬件底层的时候才会用到,像iOS开发很少见强制类型转换这个语法我很喜欢:Uint16(15.0)typedefSwift 使用的是typealias来实现这个功能:typealias ANewType = Uint16布尔值bool,值为true和false
元组使用括号声明一个元组,比如:let http404Error = (404, "Not Found")访问元组像上面那个常量,其中的一个作用就是用来定义元组变量(一个元组中存在多个变量名)来指向它:let (code, msg) = http404Error使用序号:http404Error.0 --> 404; http404Error.1 --> "Not Found"定义元组的时候命名:let http200Status = (statusCode: 200, description: "OK")个人觉得,元组目前看起来最大的作用是用在返回结构化的值,对于平常的应用,结构体会更友好一些可选项绑定从教程上来看,感觉其实就是(存疑)判断某值是否为 nil,然后进入相应的分支处理:if let localVal = someOptional {
... // 使用变量 “localVal”
}可以在同一行中 test 多个变量:if let val01 = optional01, let val02 = optional02 {
...
}各个部分之间是 “&&” 的关系
错误处理一会抛出错误的函数定义:func someFunc() thgrows {
...
}调用时的 catch 方式:do {
try someFunc()
...
} catch {
...
}或者是直接处理多种不同的错误:do {
try makeASandwitch()
} catch Error.OutOfCleanDishes {
...
} catch Error.MissingGredients(let ingredients) {
...
}其中 “ingredients” 是 catch 捕获的 String 类型值(存疑)。
断言assert(_:_:)比如:assert(tmp >= 0, "some other happens")而第二个参数,也就是错误信息可以忽略。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。