不确定我的标题是否准确。请评论是否会更新。
在一种方法中,我只需创建字典并使用()
在另一个我创建它并立即用键值对填充它。
有什么区别?有人优先考虑另一个吗?
//initializing dictionary
var airPortCodesInitialize = [Int: String]()
//vs declaring
var airPortCodes: [String: String] = ["SLC": "Salt Lake City", "LAX": "Los Angeles"]
答案 0 :(得分:1)
在这两种情况下,您都要声明字典并对其进行初始化。唯一的区别是第一行创建一个空字典,第二行创建一个填充键值对的字典。
单个声明如下:
var myDictionary: [String: String]
我认为你误解了什么声明,所以对于这个答案的其余部分,我将比较上面的行和你的第一行。
有什么区别?
单个声明给变量没有值,所以如果你在声明之后立即尝试使用myDictionary
而没有初始化它,编译器会给你一个错误:
print(myDictionary["Hello"]) // error
是否优先考虑另一个?
大多数情况下,您应该像在
中那样将初始化和声明放在同一行var airPortCodesInitialize = [Int: String]()
这更具可读性。
有时候,根据值,您可能需要不同字典的初始值。然后你必须将声明和初始化分开:
let myConstantDict: [String: String]
switch something {
case .foo:
myConstantDict = ...
case .bar:
myConstantDict = ...
}