Swift 学习笔记
Contents
基础
常量和变量
let
: 声明常量
var
: 声明变量
let 常量名: 常量类型
var 变量名: 变量类型
类型是可选的, 如果不给出, Swift 会自动推导.
分号
只有在同一行内写多条语句时, 才必须使用, 其他情况是可选
类型
- Int (与原生平台字长相同)
- UInt 同上
- Double 类型自动推导时, 浮点数 Swift 会选择 Double 而不是 Float
- Float
- Bool
- 元组
- 可选类型 optional
字面值
- 十进制 : 没有前缀
- 二进制 :
0b
前缀 - 八进制 :
0o
前缀 - 十六进制 :
0x
前缀
类型转换
SomeType(ofInitialValue)
类型别名
typealias NewName = OldName
nil
在 swift 中是一人确定的值, 表示值缺失.
可选绑定
可以有多个, 之间用分号分开, 每个相当于 &&
if let constName = someOptional {
statements
}
隐式解析可选类型
let possibleString: String? = "Hello"
let forceString: String = possibleString!
let assumedString: String! = "Hello"
let implicitSTring: String = assumedString
这就是它们之间的区别
异常处理
do {
try function()
} catch ExcpetionType {
statements
}
运算符
恒等 和 不恒等
===
和 !==
用来判断两个对象是否引用同一个实例.
空合运算符
a ?? b
相当于 a != nil ? a! : b
区间运算符
a...b
(包含a也包含b)
for index in 1...5 {
}
半开区间
a..<b
(包含a 但不包含b)
字符串
任何情况下, 都会对已有的字符串值创建新副本.
数组类型
[Int]
集合
Set<Type>
字典
Dictionary<Key, Value>
函数
func funcName(ParamterName:Type) [-> returnType] {
statements
}
多返回值
func funcName(ParamterName:Type) -> (min: Int, max: Int) {
statements
}
函数类型
var mathFunc:(Int, Int) -> Int = funcName
函数作为返回类型
func hello(pName: Type) -> (Int) -> Int {
}
可以嵌套函数
闭包
{(parameters) -> returnType in
statements
}
也可以通过使用 $0
, $1
来调用闭包参数