Swift 条件判断中使用逗号连接可选项展开代替多个if嵌套判断

在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 {
 ...
 }

参考文章

猜你喜欢

转载自blog.csdn.net/yingbi2014/article/details/80279515