首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Swift:声明一个空字典

Swift:声明一个空字典
EN

Stack Overflow用户
提问于 2014-06-04 17:12:42
回答 16查看 221.6K关注 0票数 194

我是通过在Swift上关注苹果提供的iBook-The Swift Programming Language开始学习swift的。书中说,要创建一个空字典,应该使用与将数组声明为[]时相同的[:]

我声明了一个空数组,如下所示:

代码语言:javascript
复制
let emptyArr = [] // or String[]()

但是在声明空字典时,我得到语法错误:

代码语言:javascript
复制
let emptyDict = [:]

如何声明一个空字典?

EN

回答 16

Stack Overflow用户

发布于 2014-06-04 17:20:28

除非类型信息可用,否则不能使用[:]

在这种情况下,您需要显式地提供它:

代码语言:javascript
复制
var dict = Dictionary<String, String>()

var意味着它是可变的,所以您可以向它添加条目。相反,如果您将其设置为常量,则不能对其进行进一步修改(let表示let )。

例如,如果可以推断出类型信息,则可以使用[:]速记符号

代码语言:javascript
复制
var dict = ["key": "value"]

// stuff

dict = [:] // ok, I'm done with it

在最后一个示例中,已知字典的第一行有一个Dictionary<String, String>类型。注意,您不必显式地指定它,但它已经被推断出来了。

票数 40
EN

Stack Overflow用户

发布于 2015-07-17 03:00:17

Swift documentation建议使用以下方式初始化空字典:

代码语言:javascript
复制
var emptyDict = [String: String]()

当我第一次遇到这个问题时,我有点困惑,因为不同的答案显示了初始化空字典的不同方法。事实证明,实际上有很多方法可以做到这一点,尽管考虑到Swift推断类型的能力,有些方法有点多余或过于冗长。

代码语言:javascript
复制
var emptyDict = [String: String]()
var emptyDict = Dictionary<String, String>()
var emptyDict: [String: String] = [:]
var emptyDict: [String: String] = [String: String]()
var emptyDict: [String: String] = Dictionary<String, String>()
var emptyDict: Dictionary = [String: String]()
var emptyDict: Dictionary = Dictionary<String, String>()
var emptyDict: Dictionary<String, String> = [:]
var emptyDict: Dictionary<String, String> = [String: String]()
var emptyDict: Dictionary<String, String> = Dictionary<String, String>()

在您拥有一个空字典之后,您可以添加一个键值对,如下所示:

代码语言:javascript
复制
emptyDict["some key"] = "some value"

如果要再次清空字典,可以执行以下操作:

代码语言:javascript
复制
emptyDict = [:]

类型仍然是<String, String>,因为它是这样初始化的。

票数 37
EN

Stack Overflow用户

发布于 2014-08-05 12:14:09

使用这个将会起作用。

代码语言:javascript
复制
var emptyDict = [String: String]()
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24033393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档