Swift 可选类型 - Optionals
- 可选类型
- 强制解析
- 自动解析
- 可选绑定
1.可选类型- ?
加入我们创建一个变量,但是它有可能为空,这时候Swift提供一个符号‘?’来表示这是一个可能为空的变量:
var thisStr:String? = ""
//看到这里的if,没错,if或者for循环后面的内容不加(),加了也没错,但是并非所有的if或者for循环都可以加,在使用中尽量都不加
if thisStr != nil {
print(thisStr)
}else{
print("字符串为 nil")
}
2.强制解析
强制解析可选值,虽然是可选变量,但是我已经知道了这个值一定不会为nil,有值,所以请使用这个值,使用时在后面加‘!’
var thisStr:String?
thisStr = "Hello,World!"
if thisStr != nil {
print(thisStr!)
}else{
print("thisStr 值为 nil")
}
3.自动解析
在声明时用‘!’替代‘?’,不用提前知道是否为nil
var thisStr:String!
thisStr = "Hello,World!"
if thisStr != nil {
print(thisStr)
}else{
print("thisStr 值为 nil")
}
4.可选绑定
一开始没理解什么意思,后来才知道,原来是声明的变量是否为nil,若为nil就走else,非nil则赋值给声明的常量/变量:
var thisStr:String?
thisStr = "Hello, World!"
//此处let变量若需要改变可用var,后面的参数可以是一个函数
if let thatStr = thisStr {
print("你的字符串值为 - \(thatStr)")
}else{
print("你的字符串没有值")
}