本文章纯粹是中文版@L_502_0@的学习笔记,所以绝大部分的内容都是文中有的。本文是本人的学习笔记,不是正式系统的记录。仅供参考
以下还是有很多没看懂、不确定的地方,我会以“存疑”的注解指出。
在此感谢中文版翻译者,这极大地加快了 Swift 的学习速度。
Reference:
原版:The Swift Programming Language
中文版:Swift 3 编程语言
Swift 提供了以前没有的类型:
元组
可选项类似于
nil
指针,但不仅限于类,可用在所有的类型上,甚至包括 Int 这样的基础类型。
@H_404_29@
基本类型
整数位宽
Int
类型与处理器位宽相同。同理 UInt
。这一点类似于 C 里面的 long 类型。
另有:Uint8,Int8,Uint16,Int16,Uint32,Int32,Uint64,Int64
每个类型都会有 .min
和 .max
属性。
数字值前缀
- typealias ANewType = Uint16
布尔值
bool
,值为true
和false
元组
使用括号声明一个元组,比如:
访问元组
像上面那个常量,其中的一个作用就是用来定义元组变量(一个元组中存在多个变量名)来指向它:
let (code,msg) = http404Error
定义元组的时候命名:
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")
而第二个参数,也就是错误信息可以忽略。