總結swift2.0 到swift3.0 語法等變動

最近開發完OC的項目,開始搞Swift ,2016年從開發OSX應用 到OC應用 再回歸到Swift,回頭看已經到Swift3.0了。以前在開發Swift的時候還在1.2 到2.0的切換中。swift

下面給本身總結一下變化:ide

1. 監聽方法:
 swift 3.0 ->  #selector  若是帶參數,不須要使用「:」
 swift2.0 -> ""
 OC ->  @selector
 eg: button.addTarget(self, action: #selector(click), for: .touchUpInside)
2. OC -> __FUNCTION__
   swift3.0 -> #function
3. swift3.0  -> 設置color 能夠直接 color 以後回車,選擇須要的顏色,或者修改顏色。
顯示以下:  

本質代碼以下:
 eg: testView.backgroundColor = #colorLiteral(red: 0.2392156869, green: 0.6745098233, blue: 0.9686274529, alpha: 1)
4.Swift3.0 將大量的Class 轉化爲Struct,不存在基本類型,都是結構體。
eg:public struct Double {
 5.  可選項:Optional   變量能夠有指定類型的值,也能夠是nil, nil 不是任何數據類型,不能參與計算。
     ! 強行解包。 從可選之中強行獲取對應的非空值,若是值爲nil ,就會奔潰。
     var 的可選值 默認爲nil
     let 的可選值 沒有默認值
 6.  ?? 是個三目運算
     若是有值,使用值
     若是沒有值,使用?? 後面的值替代

 

/******
  7.   Switch
        1.能夠針對任意類型的值進行分支,再也不侷限於整數。
        2.switch 通常不須要 break
        3.switch 若是要多值,使用「,」
4.全部的分支至少須要一條指令,若是什麼都沒有操做,使用break
5.case 條件中能夠使用where 語句 **
*/ func demoSwitch1(str: String) -> String { switch str { case "demo": print(str) return str case "ceshi","Ceishi": print(str) return str case "ni": print(str) return str case "hao": print(str) return str default: print("沒有匹配到值") return "沒有匹配到值" } }
 /**
 8.    For 循環
      1.傳統的for 循環,在swift3.0中被取消
      2.i++ ++i從swift3.0被取消 使用i += 1
      3.在使用過程當中要注意空格的使用。
      4.for 循環 反轉使用reversed()
     **/
    func forDemo1()  {
        for i in 0..<10 {
            print(i)
        }
        print("------------")
        for i in 0...10 {
            print(i)
        }

        //for 循環 反轉
        for j in (10...30).reversed() {
            print(j)
        }
    }
/**
  9. 字符串
     1. 長度lengthOfBytes() 方法,返回的是字節數量。UTF8中,每一個漢字是3個字節。
     2. .characters.count 返回字符的個數。
     3. 使用NSSting 中轉得到長度
     
     
     **/

    func demoStr1(str: String) {
        let  string = "測試String的 循環遍歷"
        print(string.lengthOfBytes(using: .utf8)) //28
        print("字符的個數是:",string.characters.count) //14
        for c in string.characters {
            print("****",c)
        }
        print((string as NSString).length) //14
    }
相關文章
相關標籤/搜索