2015年8月10日 星期一

【Swift 筆記 Draft】第 3 講(2):字典 Dictionary


1. Dictionary 由 key 與 value 所組成,各 element 以逗號 , 區隔
2. Dictionary 以 key 來搜尋相對應的 value
3. Dictionary 中的 element 沒有次序關係
4. Dictionary 若以 var 宣告,可新增修改除集合資料的 element。

宣告 Dictionary:

var name:Dictionary = ["first":"Rob", "last":"Hsu"]
var name:[String: String] = ["first":"Rob", "last":"Hsu"]
var name =["first":"Rob", "last":"Hsu"]
Dictionary 以 Dictionary 來宣告,這裡 T1, T2 表示泛型 Generic Type,T1 是 key,而 T2 是 value。 宣告 empty dictionary:

var name = Dictionary()
var name = [String: String]()
清空Dictionary name: name = [:] 新增、修改、刪除 Dictionary 之 element dictionaryName[key] = value 新增:  name["second"] = "Mary" // name = ["first":"Rob", "last":"Hsu", "sechond":"Mary"] 修改: name["first"] = "John" name.updateValue("Wang", forKey:"Rob") // name = ["first":"Rob","last":"Wang"] name["first"] = nil // name = ["last":"Hsu"] 刪除: name["first"] = nil // delete name.removeValueForKey("Rob") Getter / Setter: println(name["Bob"]) 將 value 轉換為指定的 data type: (1) 將 String 轉換為 Int 類型的值: var dict1 = ["key1":"10", "key2":"20"] var num1:Int? = dict1["key1"]?.toInt() (2) 將原本是 Int 的 NSObject 值轉換為 Int 類型的值: var dict2 = ["key1":"10", "key2":20] var num2:Int = dict2["key2"] as Int (3) 將原本是 String 的 NSObject 値轉換為 Int 類型的值: var dict2 = ["key1":"10", "key2":20] var num3:Int? = (dict2["key1"] as? String)?.toInt() Dictionary Iteration: 與 Array 不同,Dictionary 有兩個集合,所以 iteration 可以針對 key 或 value 操作。 enum 字典中的 key 與 value:

for (key, value) in dictName
{
  ...
}
或是

for key in dictName.keys
{
   ...
}

for value in dictName.values
{
   ...
}
當 Dictionary 類型變成 NSDictionary 時,可先將其轉成 Dictionary:

for key in (dictName as Dictionary).keys
{
   ...
}
var dict2 = ["key1":"10", "key2":20] for key in (dict2 as Dictionary).keys { println(key) } 將 key 與 value 轉換成 Array: var dict1 = ["key1":"10", "key2":"20"] let keys = Array(dict1.keys) let values = [String](dict1.values)

沒有留言:

張貼留言

prettyPrint();