首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Swift 小心字典Value等于nil(容易出错)

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

作者头像
星宇大前端
发布2019-04-18 16:28:32
7750
发布2019-04-18 16:28:32
举报
文章被收录于专栏:大宇笔记大宇笔记大宇笔记

版权声明:转载请标明出处 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 时,并没有值被更新或者插入。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年04月10日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档