swift 中 可选类型解包的3种写法
代码如下
var name : String?
var age: Int?
方法1: if判断后,强制解包
if name != nil , age != nil {
print( "方法1 " + name! + "今年\(age!)了")
}
方法2: if let 判断 不需要解包
if let name = name, let age = age {
print("方法2 " + name + "今年\(age)了")
}else{
print("方法2 " + "\(name ?? "name没有传值")" + "age = \( age ?? 0)")
}
方法3: guard let else 不需要解包
guard let name = name ,let age = age else{
print("方法3没有值")
return
}
print("方法3 \(name) 今年\(age)了")
}
总结:
- 方法1,不推荐.
- 方法2,较少使用 name和age 只能用在{} 中,且之后的逻辑操作也要写在{}中
- 方法3,推荐的做法 name和age用在{}之外,减少了层次结构,else之后需 要写return或则continue
网友评论