Swift 小心字典Value等于nil(容易出错)

版权声明:转载请标明出处 https://blog.csdn.net/ZY_FlyWay/article/details/89186333

看书的时候看到 下面一段代码:

 var dicWithNils:[String:Int?] = [
    "one":1,
    "two":2,
    "none":nil
]

现在要求把two这个key的值变成nil

错误答案:

dicWithNils["two"] = nil

它将会把 “two” 这个键移除。


正确答案:

我们可以使用下面中的任意一个来改变这个键的值,你可以选择一个你觉得清晰的方式,它们 都可以正常工作:

dictWithNils["two"] = Optional(nil)
dictWithNils["two"] = .some(nil)
dictWithNils["two"]? = nil
dictWithNils // ["none": nil, "one": Optional(1), "two": nil]

注意上面的第三个版本和其他两个稍有不同。它之所以能够工作,是因为 “two” 这个键已经存 在于字典中了,所以它使用了可选链的方式来在获取成功后对值进行设置。现在来看看对于不 存在的键进行设置会怎么样:

 dictWithNils["three"]? = nil 
 dictWithNils.index(forKey: "three") // nil

你可以看到,当把 “three” 设置 nil 时,并没有值被更新或者插入。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券