Swift字典

2020-06-11  本文已影响0人  奔跑的鸿
let dict = ["name": "lnj", "age": 30] as [String : Any];
或
let dict:[String:Any] = ["name": "lnj", "age": 30]
dict["name"] //输出"lnj"
或
someDict[2] //输出Optional("Two")
//如果对应的key在字典中没有,那么就会更新该键值对,否则更新该key的value
var dict2 = ["name": "lnj", "age": 30] as [String : Any] //输出["name": "lnj", "age": 30]
dict2["gender"] = "man" //输出"man"
dict2 //输出["name": "lnj", "age": 30, "gender": "man"]

也可以用updateValue(forKey:)增加或更新字典的内容。返回Optional值

var oldVal = someDict.updateValue("ZhangSan", forKey: "name")
print( "key = 1 旧的值 \(oldVal)" ) #输出"lnj"
print( "key = 1 的值为 \(someDict["name"])" ) #输出"ZhangSan"
dict2.removeValue(forKey: "name")
dict2 //输出["gender": "man", "age": 30]

也通过指定键的值为nil来移除键值对

dict2[@"name"] = nil
dict2["age"] = 42
let arrDic:[[String:Any]] = [
  ["name":"hello","age":22],
  ["name":"hi","age":23]
]
print(arrDic)
var dict3 = ["score": 99] //输出["score": 99]
for (key, value) in dict3
{
    dict2[key] = value
}
dict2 //输出 ["gender": "man", "age": 42, "score": 99]
for e in dictionary
{
    print("key = \(e.key) value = \(e.value)")
}
//写法二
for (key,value) in dictionary
{
    print("key = \(key) value = \(value)")
}

enumerate()方法遍历字典,返回的是字典的索引index及 元组(key, value)

var dictionary = ["name": "lnj", "age": 30] as [String : Any]
for (index, tuple) in dictionary.enumerated() {
    print("下标index:\(index) - 键值对:\(tuple)")
    print("  访问key:\(tuple.key), value:\(tuple.value)")
    //也可以写成  print("  访问key:\(tuple.0), value:\(tuple.1)")
}

以上程序执行输出结果为:

下标index:0 - 键值对:(key: "age", value: 30)
    访问key:age, value:30
下标index:1 - 键值对:(key: "name", value: "lnj")
    访问key:name, value:lnj
var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]
let dictKeys = [Int](someDict.keys)
let dictValues = [String](someDict.values)
print("输出字典的键(key)")
for (key) in dictKeys {
    print("\(key)")
}
print("输出字典的值(value)")
for (value) in dictValues {
    print("\(value)")
}
上一篇 下一篇

猜你喜欢

热点阅读