字典/*
字典
* OC @{key:value}
* Swift [key:value]
* 和數(shù)組一樣, 如果用let修飾就是不可變字典, 如果用var修飾就是可變字典
*/
// 開發(fā)技巧: 在iOS開發(fā)中使用頻率最高的就是 [String: AnyObject]
let dict1 = ["name": "lnj", "age": 3]
var dict2:[String: AnyObject]
dict2 = ["name": "lnj", "age": 3]
# 獲取
// 注意點(diǎn): 從字典中取出的值都是可選類型的值
// 因?yàn)橥ㄟ^一個(gè)key取值, 可能取得到, 也可能取不到, 所以返回一個(gè)可選類型的值
// 如果!寫在[]后面, 代表取出來的值一定有值
// 如果!寫在dict后面, 代表dict一定有值
print(dict2["name"]!)
# 更新
dict2["name"] = "zs"
dict2
# 添加
// 也就是說, 如果key存在就是更新, 如果key不存在就是添加
dict2["score"] = 99
dict2
# 遍歷
for key in dict2.keys
{
print(dict2[key])
}
// 會(huì)將字典中的key賦值給()中的第一個(gè)變量k
// 會(huì)將字典中的value賦值給()中的第二個(gè)變量v
// 注意: k/v隨便寫
// ()括起來的東西我們稱之為元祖, 元祖是Swift中新增的一種數(shù)據(jù)類型
for (x, o) in dict2
{
print(x)
print(o)
}
# 合并
var dict3:[String: AnyObject] = ["name": "lnj", "age": 3]
var dict4:[String: AnyObject] = ["score": 99]
// 字典不能像數(shù)組一樣通過+=來合并
//dict3 += dict4
for (k, v) in dict3
{
// 要在聲明時(shí)統(tǒng)一字典的格式,不然報(bào)錯(cuò)
// 因?yàn)槿绻患覽String: AnyObject],dict3默認(rèn)是此類型,
// dict4默認(rèn)是[String: Int],不能把AnyObject給Int賦值
dict4[k] = v
}