Swift中的字典類型是Dictionary,泛型集合惭蟋。var修飾是可變字典,let修飾時可變字典?
聲明字典類型:
var dict1: Dictionaryvar dict2: [Int: String]??
初始化:必須進行初始化才能使用
var dict1: Dictionary= Dictionary()?
// 定義一個可變字典
var dict3 : [String : NSObject] = [String : NSObject]()
// 定義字典的同時進行初始化
let dict4 = ["name" : "xiaosan", "age" : 18]?
// 類型推導(dǎo)出 [String : NSObject] 類型
// swift中任意對象,通常不使用NSObject,使用AnyObjectvar?
dict5 : Dictionarydict5 = ["name" : "dd", "age" : 18]
字典的基本操作
// 字典的操作
var dict : [String : AnyObject] = [String : AnyObject]()
dict = ["age" : 18, "height" : 1.74, "name" : "xiaocan"]
// 添加數(shù)據(jù)
dict["weight"] = 60.0
// 刪除數(shù)據(jù)
dict.removeValueForKey("age")
// 修改字典
dict["name"] = "xiaoer"
dict["age"] = 18? // 如果沒有這個鍵药磺,則為添加數(shù)據(jù)
// 查詢
dict["name"]
字典的遍歷
// 遍歷字典中所有的值
for value in dict.values {
print(value)
}
// 遍歷字典中所有的鍵
for key in dict.keys {
print(key)
}
// 遍歷所有的鍵值對
for (key, value) in dict {
print(key)
print(value)
}
字典的合并
var myDict1 = ["name" : "xiaosan", "age" : 20]
var myDict2 = ["height" : 1.77, "address" : "taikang"]
// 字典不可以相加合并? ? 另外類型不同也不能合并
for (key, value) in myDict1 {
myDict2[key] = value
}
removeValueForKey && updateValue(forKey:)
字典的updateValue(forKey:) 方法去設(shè)置或者更新一個特定鍵的值告组,如果鍵不存在則會設(shè)置它的值,如果鍵存在則會更新它的值, 和下標不一樣是, updateValue(forKey:) 方法如果更新時癌佩,會返回原來舊的值rThis enables you to 可以使用這個來判斷是否發(fā)生了更新木缝。
var dict = ["name" : "siri", "age" : 18, "address" : "nanjing"]
iflet oldValue = dict.updateValue("Siri", forKey: "name") {
print(oldValue)? // siri
}
//使用下標語法把他的值分配為nil,來移除這個鍵值對围辙。
dict["age"] = nil
print(dict)? // ["address": nanjing, "name": Siri]
使用removeValueForKey方法我碟,如果存在鍵所對應(yīng)的值,則移除一個鍵值對姚建,并返回被移除的值矫俺,否則返回nil。
if let removedValue = dict.removeValueForKey("address") {
print("The remove dict's adddress is \(removedValue)") // The remove dict's adddress is nanjing
} else {
print("The dict does not contain a value for address")
}
參考:http://www.cnblogs.com/10-19-92/p/5627619.html