swift字典

字典/*

字典

* OC @{key:value}

* Swift [key:value]

* 和数组一样, 如果用let修饰就是不可变字典, 如果用var修饰就是可变字典

*/

// 开发技巧: 在iOS开发中使用频率最高的就是 [String: AnyObject]

let dict1 = ["name": "lnj", "age": 3]

var dict2:[String: AnyObject]

dict2 = ["name": "lnj", "age": 3]

# 获取

// 注意点: 从字典中取出的值都是可选类型的值

// 因为通过一个key取值, 可能取得到, 也可能取不到, 所以返回一个可选类型的值

// 如果!写在[]后面, 代表取出来的值一定有值

// 如果!写在dict后面, 代表dict一定有值

print(dict2["name"]!)

# 更新

dict2["name"] = "zs"

dict2

# 添加

// 也就是说, 如果key存在就是更新, 如果key不存在就是添加

dict2["score"] = 99

dict2

# 遍历

for key in dict2.keys

{

print(dict2[key])

}

// 会将字典中的key赋值给()中的第一个变量k

// 会将字典中的value赋值给()中的第二个变量v

// 注意: k/v随便写

// ()括起来的东西我们称之为元祖, 元祖是Swift中新增的一种数据类型

for (x, o) in dict2

{

print(x)

print(o)

}

# 合并

var dict3:[String: AnyObject] = ["name": "lnj", "age": 3]

var dict4:[String: AnyObject] = ["score": 99]

// 字典不能像数组一样通过+=来合并

//dict3 += dict4

for (k, v) in dict3

{

// 要在声明时统一字典的格式,不然报错

// 因为如果不加[String: AnyObject],dict3默认是此类型,

// dict4默认是[String: Int],不能把AnyObject给Int赋值

dict4[k] = v

}

你可能感兴趣的:(swift字典)