2016年4月11日 星期一

swift 學習筆記 3: Dictionary

字典型別是用成對 key:value 元素所組成的集合, 各元素以逗點分開, 使用 [:,:,...] 組成集合, 它其實也沒有順序可言, 但很重要的特性是 key 的值絕對不能有重複, 字典的型別宣告使用Dictionary<TYPE of key:TYPE of value> 來敘述, 簡單的也可用 [TYPE of key:TYPE of value] 來敘述, 例如:
let mydic:[Int:String]=[3:"a",2:"b",1:"CC"]

當然 swift 也可自動推斷出上述的型別, 因此 TYPE 其實也可以省略不寫,下面字典宣告也是符合語法的
var vardic=[2:"a",1:"b",3:"CC"]

字典型別可以透過 key 當索引值, 直接取用 value, 例如
vardic[1]="SDSD"  // 直接更改 key=1 的值, 現在 vardic 將變成是  [2:"a",1:"SDSD",3:"CC"]

如果要清空字典. 可用 [:] 來直接賦予便可, 前提當然該 instance 必須之前就已宣告成變數
var dic=[2:"DD",4:"ww",5:"DDD"] // 宣告字典變數並實體化 instance
dic=[:] // 清空字典內容

透過 key 來取用字典內其所對應的值(value)時, 有可能該 key 並不存在, 因此可運用 optional binding (if let) 來運作較保險


如果要刪除字典內的成員(成對元素), 可以透過將 nil 值賦予字典 key 所對應的成員, 例如
vardic[3]=nil   // 刪除 key=3 的成員


如要列出字典內所有 key, 可以用 for-in 迴圈搭配字典的 .keys 來一一列出, 例如
var vardic=[2:"a",1:"b",3:"CC"]
for i in vardic.keys {
   print("Key:\(i)")
}

如要列出字典內所有 value, 可以用 for-in 迴圈搭配字典的 .values 來一一列出, 例如
var vardic=[2:"a",1:"b",3:"CC"]
for i in vardic.values {
   print("Value:\(i)")
}


字典的屬性及工具:
isEmpty: 驗證是否是空字典
updateValue(,forkey:)
removeValueForKey()



沒有留言: