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

參考文章

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章