zoukankan      html  css  js  c++  java
  • Swift Bool 解包判断问题和简单写法

    如下代码所示的判断逻辑,在 Swift 里更简单的写法是什么呢?

    let b: Bool? = false // 假设有一个 Optional 的 Bool 变量
    if let a = b {
        if b == false {
            call()
        }
    } else {
        call()
    }

    以上代码表示需要先解包、如果失败,或者解包成功并且值为false,都调用一个方法。

    在 OC 里因为没有解包所以一般的写法是这样:

    if (!b) {
        call();
    }


    那swift中有没有简单易懂的写法呢?

     其实熟悉了Swift 再回头来看这个问题就比较清楚了,只要明白 b? 只有可能为三个值就行了,分别是 nil/true/false,问题是需要拦截到 nil 和 false 两个条件即可,所以表达式可以这么写。

     

    if b == nil || b ==  false {
        call()
    }
    or
    
    if !(b ?? false) {
        call()
    }
  • 相关阅读:
    Linq
    正则表达式
    XPath
    winFrom http协议
    CSS选择器
    Action方法
    Code First开发方式
    Database First开发方式
    可选参数,程序暂停,属性的初始化,String.Format改进
    Lambda表达式和LTNQ
  • 原文地址:https://www.cnblogs.com/allen123/p/5959577.html
Copyright © 2011-2022 走看看