Swift學習之每日一tip (4)版本對比與一些小技巧

首先,非常抱歉,昨天本來說是今天要給大家寫一下1.1版本和1.2版本之間的區別的。但是,在整理後,1.2增加的許多功能網上早已經有人提出過了,所以這裏就不佔用大家的時間了,想知道的直接百度就可以了。
今天呢,小湯我就把我在編碼中遇到的1.1的語法在1.2下衝突的一些小例子列舉一下,並且給大家介紹一下swift中下劃線與#號的一些小技巧吧。

1.1版本與1.2版本幾個常見衝突:

  1. 數組的表示
    1.1版本下:let emptyArray = String
    1.2版本下:let emptyArray = String

  2. for循環
    1.1版本下:for i in 0..3 {
    }
    1.2版本下:for i in 0..<3 {
    }

  3. 枚舉類型的原始值調用方法
    1.1版本:toValue
    1.2版本:rawValue

  4. 排序方法名
    1.1 sort
    1.2 sorted

這幾個是我在測試的過程中發現的幾個常見的小衝突,肯定還有一些沒有列舉出來的,但是想來應該不多了,有找到其他衝突的大牛們,希望能夠回覆告知一下。

因爲今天的內容寫的實在過於無聊,想了想又決定添上幾個小技巧。

“_”與“#”的一些小技巧

在Swift中,下劃線和”#”有很多妙用,這裏將已經看到的妙用進行總結,希望可以幫助更多學習Swift的朋友。下面先介紹下劃線。

  1. 格式化數字字面量
    通過使用下劃線可以提高數字字面量的可讀性,例如:

    let a = 123.000_001   
    let b = 1_000_000   
    
  2. 忽略元組的元素值
    當我們使用元組時,如果有的元素不需要使用,這時可以使用下劃線將相應的元素進行忽略,例如:

    let http404Error = (404, "Not Found")   
    let (_, error) = http404Error  
    

    代碼中,只關心http404Error中第二個元素的值,所以第一個元素可以使用下劃線進行忽略。

  3. 忽略區間值

    let base = 3   
    let power = 10   
    var answer = 1   
    for _ in 1...power {   
        answer *= base   
    }  
    

    有時候我們並不關心區間內每一項的值,可以使用下劃線來忽略這些值。

  4. 忽略外部參數名
    在使用方法(類方法或者實例方法)時,方法的第二個參數名及後續的參數名,默認既是內部參數名,又是外部參數名,如果不想提供外部參數名,可以在參數名前添加下劃線來忽略外部參數名。

    //函數定義      
    private func addChildViewController(sbName: String, title: String, imageName: String) {}
    //函數調用效果
    addChildViewController(<#sbName: String#>, title: <#String#>, imageName: <#String#>)
    

在上面的代碼中,函數addChildViewController中有兩個帶外部參數名的項,如果不想使用外部參數名可以使用下劃線進行忽略,代碼可以寫爲(不過爲了提高代碼的可讀性,一般不進行忽略):

    //函數定義
    private func addChildViewController(sbName: String, _ title: String, _ imageName: String) {}
    //函數調用時的效果
    addChildViewController(<#sbName: String#>, <#title: String#>, <#imageName: String#>)


5. 配置外部參數名

在swift函數中,第二個及後續的參數,默認是具有和內部參數一致的外部參數名的,只有第一個參數沒有,可以使用”#”符號來強制給第一個參數添加與本地參數名一致的外部參數名。

//函數定義      
    private func addChildViewController(#sbName: String, title: String, imageName: String) {}
//函數調用效果
    addChildViewController(sbName: <#String#>, title: <#String#>, imageName: <#String#>)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章