我是通过在Swift上关注苹果提供的iBook-The Swift Programming Language
开始学习swift
的。书中说,要创建一个空字典,应该使用与将数组声明为[]
时相同的[:]
我声明了一个空数组,如下所示:
let emptyArr = [] // or String[]()
但是在声明空字典时,我得到语法错误:
let emptyDict = [:]
如何声明一个空字典?
发布于 2014-06-04 17:20:28
除非类型信息可用,否则不能使用[:]
。
在这种情况下,您需要显式地提供它:
var dict = Dictionary<String, String>()
var
意味着它是可变的,所以您可以向它添加条目。相反,如果您将其设置为常量,则不能对其进行进一步修改(let
表示let
)。
例如,如果可以推断出类型信息,则可以使用[:]
速记符号
var dict = ["key": "value"]
// stuff
dict = [:] // ok, I'm done with it
在最后一个示例中,已知字典的第一行有一个Dictionary<String, String>
类型。注意,您不必显式地指定它,但它已经被推断出来了。
发布于 2015-07-17 03:00:17
Swift documentation建议使用以下方式初始化空字典:
var emptyDict = [String: String]()
当我第一次遇到这个问题时,我有点困惑,因为不同的答案显示了初始化空字典的不同方法。事实证明,实际上有很多方法可以做到这一点,尽管考虑到Swift推断类型的能力,有些方法有点多余或过于冗长。
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>()
在您拥有一个空字典之后,您可以添加一个键值对,如下所示:
emptyDict["some key"] = "some value"
如果要再次清空字典,可以执行以下操作:
emptyDict = [:]
类型仍然是<String, String>
,因为它是这样初始化的。
发布于 2014-08-05 12:14:09
使用这个将会起作用。
var emptyDict = [String: String]()
https://stackoverflow.com/questions/24033393
复制相似问题