在Swift中,因为有可选项的存在,当我们用到一个可选项类型时,可以用if let进行可选项展开,也可以判断是否为nil,然后再强制展开使用,代码如下:
var name:String?
//方法1
if let n = name {
//如果name不为nil,则执行这里,这里直接使用n,是解包后的
print(n)
} else {
//如果name为nil,则执行这里
}
//方法2
if name == nil {
//这里还要强制解包
print(name!)
} else {
}
可以明显的看到第一种方法更方便,尤其是在需要多重判断时,第一种方法大大的简化if的嵌套。但是有时候,我们不仅仅需要判断name是否为nil,还要判断其长度是否大于5,就要再加一层if判断,而逗号可以将可选项转换转化为Bool值,并减少一层嵌套。如下:
//方法1
if let n = name{
if n.count > 5 {
} else {
}
} else {
}
//方法2
if let n = name , n.count > 5 {
} else {
}
方法1,是常规的判断方法。
方法2,先进行可选项展开,成立的话,再加上其他判断。明显第二种更简洁。
方法2还可以多个值连接,代表所有展开都成功才执行,如下:
if let a = a, let b = b, let c = c, let d = d, e < 0, f > 0 {
...
}