swift 2.0基本文法

來源:互聯網
上載者:User

標籤:

下面為一些swift 2.0 的基本文法,寫在playground中,每次swift版本跟新的時候,開啟瞅瞅,就可以對比出哪裡發生了修改。

內容包括:01變數&常量  02分支  03迴圈  04字串  05數組  06字典  07函數

01變數&常量
//: Playground - noun: a place where people can playimport UIKitvar str = "Hello, playground"/*:    let 常量    var 變數    * 自動`推導`,能夠根據右邊的代碼,推匯出變數的準確類型*/let x = 100// 常量一旦設定數值,就不能再次修改//x = 300var y = 200y = 300print(x + y)/*:    swift 對資料類型要求異常嚴格    * 整數的預設類型是 Int(long 64位)    * 小數的預設類型是 Double (OC 中使用比較多的是 CGFloat)    * swift 中任何時候,都不會做 `隱式轉換`,如果要對不同類型的資料進行計算,必須要自己轉換*/let i = 10let j = 8.5//let k = i + jlet iNum = i + Int(j)let dNum = Double(i) + jlet size = CGSizeMake(100, 100)let w = CGFloat(j) + size.width
02分支
//: Playground - noun: a place where people can playimport UIKitvar str = "Hello, playground"let i = 50/*:    1. 條件不需要括弧    2. {} 不能省略*/if i > 20 {    print("OK")}/*:    * OC 和 C 中非零即真    * swift 中邏輯值只有兩個 true / false*/if i == 50 {    print("OK")}// 三目,文法和 OC 基本一樣let b = i < 20 ? 10 : 80/**    可選項(Optional) ?    表示變數可以有值,也可以沒有值    * convenience init? 建構函式,? 表示不一定能夠執行個體化出對象    * `!` 表示程式員告訴編譯器對象一定有值,編譯能夠通過    * 如果運行時,沒有值,就`崩潰`*/let url = NSURL(string: "http://www.baidu.com")//如果不確定url 真的有值,增加一個 ifif url != nil {    let request = NSURLRequest(URL: url!)}print(url)// 判斷對象是否有值 - 增加了 if ,能夠保證進入 {} 代碼,url1 一定有值的if let url1 = NSURL(string: "http://www.baidu.com/s?wd=zhang") {    let request = NSURLRequest(URL: url1)}
03迴圈
//: Playground - noun: a place where people can playimport UIKitfor var i = 0; i < 10; i++ {    print(i)}/*:    swift    * 0~9 其中 0..<10 不能有空格*/for i in 0..<10 {    print(i)}// 0~10for i in 0...10 {    print(i)}// 不關心下標,可以使用 _ 省略for _ in 0..<10 {    print("hello world")}
04字串
//: Playground - noun: a place where people can playimport UIKit/*:    Swift 中使用 String 是一個結構體,效率會高,支援遍曆    OC 的 NSString,是一個對象    * Swift 中,String 和 NSString 之間的轉換很容易*/var str = "我要飛的更高"// swift 2.0 中遍曆字元for c in str.characters {    print(c)}// 字串拼接let i = 1let rect = CGRectMake(0, 0, 100, 100)str = str + "\(i)" + "\(rect)"// 拼接字串的時候,一定記住如果是可選項,要特別注意,帶上 Optionalvar x: Int?x = 10let str1 = "\(x!)"// 格式let frmString = String(format: "%02d:%02d:%02d", arguments: [11, 1, 59])/*:    如果使用 Range 的時候,最好用 NSString*/// 跟原來的字串一模一樣var subStr = str.substringWithRange(Range<String.Index>(start: str.startIndex, end: str.endIndex))print(subStr)// 從哪裡開始,到哪裡結束subStr = str.substringWithRange(Range<String.Index>(start: advance(str.startIndex, 3), end: advance(str.startIndex, 6)))print(subStr)let myStr: NSString = strlet myStr1 = str as NSStringmyStr.substringWithRange(NSMakeRange(0, 3))
05數組
import UIKitvar str = "Hello, playground"/*:    數組定義 []*/let array = ["zhangsan", "lisi"]// 遍曆for str in array {    print(str)}print(array[0])print(array[1])// 不能向不可變數組新增內容//array.append("wangwu")/*:    可變 var 和 不可變 let    * OC 中的數組,可以存放任意類型的對象*/// array1 的類型 [String],自動推導,只允許存放字串var array1 = ["xiaohua", "xiaocao"];// array2 的類型 [NSObject],可以存放`任意對象`// 在 swift 中,數字也可以直接當成對象存放在數組,不需要`轉換`var array2 = ["xiaohua", "xiaocao", 123];array1.append("laozhang")array2.append(100)/*:    數組的定義*/// array3 是一個僅允許存放字串的數組,定義類型var array3: [String]// 對 array3 進行執行個體化,在此之前,不允許操作array3 = [String]()array3.append("laowang")// 數組的合并array3 += array1// 必須是相同類型的才能夠合并// 提示:在 swift 開發中,通常數組中儲存的物件類型,都是一樣的!//array3 += array2// 數組的刪除array3.removeAtIndex(2)array3array3 += array1print(array3.count)// 清空數組 keepCapacity 是否保持容量array3.removeAll(keepCapacity: false)// 新增內容 // 如果向數組中追加元素,超過了容量,會直接在現有容量基礎上 * 2// OC 執行個體化可變數組,最好指定容量for i in 0..<16 {    array3.append("hello - \(i)")    print(array3[i])    print(array3.capacity)    }
06字典
//: Playground - noun: a place where people can playimport UIKitvar str = "Hello, playground"/*:    定義字典 []    let 不可變    var 可變*/// [String : NSObject] - 類型最常見// JSON 的資料格式,key 是 String// [key: value]var dict = ["name": "張三", "age": 18]dict// 如果 key 不存在,會建立dict["title"] = "boss"dict// 如果 key 存在,會覆蓋dict["name"] = "lisi"dict/*:    字典的遍曆    k, v 可以隨便寫,前面是 key,後面是 value*/for (vv, kk) in dict {    print(vv + "--- \(kk)")}/*:    合并字典*/// 1. 定義字典var dict1: [String: NSObject]dict1 = [String: NSObject]()dict1["nickname"] = "老王"dict1["age"] = 80// 2. 合并-如果存在會覆蓋,如果沒有會建立for (k, v) in dict1 {    dict[k] = v}dict
07函數
import UIKitvar str = "Hello, playground"//參數及傳回值,取消了1.2中的#func sum(num1 a: Int, num2 b: Int) -> Int{    return a+b}sum(num1: 10, num2: 20)func prinnnnt(printtt a: Int) -> Void {    print(a)}prinnnnt(printtt: 10)

 

swift 2.0基本文法

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.