天天看點

Swift基礎1.5——基本文法——集合

這一篇,簡單介紹一下Swift中的數組與字典

  • 數組使用 

    []

     定義,這一點與 OC 相同
//: [Int]
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]           
  • 周遊
// 順序周遊數組
for s in array1 {
    print(s)
}

// 周遊同時擷取下标
for s in array1.enumerate() {
    print("\(s.index) \(s.element)")
}

// 周遊同時擷取下标方法2
for (i, e) in array1.enumerate() {
    print("\(i) \(e)")
}

// 倒序周遊數組
for s in array1.reverse() {
    print(s)
}

// 倒序同時擷取下标
for e in array1.reverse().enumerate() {
    print(e)
}           
  • 可變&不可變
    • let

       定義不可變數組
    • var

       定義可變數組
let array = ["zhangsan", "lisi"]
//: 不能向不可變數組中追加内容
//array.append("wangwu")
var array1 = ["zhangsan", "lisi"]

//: 向可變數組中追加内容
array1.append("wangle")           
  • 數組的類型
    • 如果初始化時,所有内容類型一緻,擇數組中儲存的是該類型的内容
    • 如果初始化時,所有内容類型不一緻,擇數組中儲存的是 

      NSObject

// array1 僅允許追加 String 類型的值
//array1.append(18)

var array2 = ["zhangsan", 18]
// 在 Swift 中,數字可以直接添加到集合,不需要再轉換成 `NSNumber`
array2.append(100)
// 如果向 數組添加 `CG` 結構體,需要使用 `NSValue` 轉換
array2.append(NSValue(CGPoint: CGPoint(x: 10, y: 10)))           
  • 數組的定義和執行個體化
    • 使用 

      :

       可以隻定義數組的類型
    • 執行個體化之前不允許添加值
    • 使用 

      [類型]()

       可以執行個體化一個空的數組
  • 數組的合并
    • 必須是相同類型的數組才能夠合并
    • 開發中,通常數組中儲存的對象類型都是一樣的!

字典

  • 定義
    • 同樣使用 

      []

       定義字典
    • let

       不可變字典
    • var

       可變字典
    • [String : NSObject]

       是最常用的字典類型
  • 周遊
    • k

      v

       可以随便寫
    • 前面的是 

      key

    • 後面的是 

      value

for d in dict {
    print("\(d.0) \(d.1)")
}

// 周遊
for (k, v) in dict {
    print("\(k) ~~~ \(v)")
}           
  • 合并字典
    • 如果 key 不存在,會建立新值,否則會覆寫現有值
//: 合并字典
var dict1 = [String: NSObject]()
dict1["nickname"] = "大曾"
dict1["age"] = 100

//: 如果 key 不存在,會建立新值,否則會覆寫現有值
for (k, v) in dict1 {
    dict[k] = v
}
print(dict)