1. 程式人生 > >Swift基礎1.5——基本語法——集合

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] 是最常用的字典型別
  • 遍歷
    • kv 可以隨便寫
    • 前面的是 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)