Swift-集合2_字典Dictionary

集合型別

  • 陣列( Array )
    • 是有序的集合
    • 索引從0開始
    • 元素要同一型態
  • 字典(Dictionary)
    • 元素以:key ⇒ value 的形式構成 ( 鍵 ⇒ 值 )
    • 通常是用 key 來進行存取
    • key 不能重覆
    • 無序的集合
    • 元素型態可不一樣
  • 集合( Set )
    • 與陣列類似
    • 無序的集合
    • 集合內的值不可重複
    • 元素要同一型態
  • 元組( 雜堆 )( Tuple )
    • 元素有順序(可用 index 或 key)
    • 一旦決𤴓元素內容,就不能再更動
    • 元素、index 、key 不限型態,可以混用

字典(Dictionary)

  • 元素以:key ⇒ value 的形式構成 ( 鍵 ⇒ 值 )
  • 通常是用 key 來進行存取
  • key 不能重覆
  • 無序的集合
  • 元素型態可不一樣
var animals = ["John": 1, "Oli": 2, "Tom": 3]

print(animals)
var oli = animals["Oli"] // 複製給 oli
print("\(oli!)")

animals["Oli"] = 6 // 更改 Oli 的 value
print(animals)
oli = animals["Oli"] // 覆蓋之前的
print(oli!)

// 結果
["Tom": 3, "Oli": 2, "John": 1]
2
["Tom": 3, "Oli": 6, "John": 1]
6

宣告

//完整的宣告方式
var ohmygod: Dictionary<String, String> = [:]

//省略 Dictionary 的宣告方式
var ohmygod = [String: String]()

設定初始資料

var ohmygod : Dictionary<String, Int> = ["John": 1, "Oli": 2, "Tom": 3]

print(ohmygod)

// ["John": 1, "Tom": 3, "Oli": 2]

新增 or 修改資料

ohmygod["Oli"] = 22

取出所有集合資料 - 遍歷

for item in ohmygod {
    print("\(item.key) : \(item.value)")
}
// 結果:
John : 1
Oli : 22
Tom : 3

型態查詢

print(type(of: ohmygod))

//結果:
Dictionary<String, Int>

刪除指定資料

ohmygod.removeValue(forKey: "Oli")
print(ohmygod)

// 結果:
["Tom": 3, "John": 1]