gpt4 book ai didi

swift - 初始化字典和在 Swift 中声明有什么区别?

转载 作者:行者123 更新时间:2023-11-28 15:19:56 24 4
gpt4 key购买 nike

不确定我的标题是否准确。请评论是否会更新。

在一种方法中,我只是创建字典并用 () 初始化它

在另一个中,我创建它并立即用键值对填充它。

有什么区别?一个比另一个更受欢迎吗?

//initializing dictionary
var airPortCodesInitialize = [Int: String]()

//vs declaring
var airPortCodes: [String: String] = ["SLC": "Salt Lake City", "LAX": "Los Angeles"]

最佳答案

在这两种情况下,您都在声明一个字典并对其进行初始化。唯一的区别是第一行创建了一个空字典,第二行创建了一个充满键值对的字典。

单个声明如下所示:

var myDictionary: [String: String]

我认为您误解了什么是声明,所以对于这个答案的其余部分,我将比较上面的行和您的第一行。

What is the difference?

单个声明不会为变量赋予任何值,因此如果您尝试在声明之后立即使用 myDictionary 而不对其进行初始化,编译器会报错:

print(myDictionary["Hello"]) // error

Is one prefered over the other?

大多数时候,您应该像在中那样将初始化和声明放在同一行

var airPortCodesInitialize = [Int: String]()

这更具可读性。

但有时,您可能需要根据值为常量字典设置不同的初始值。那么你必须将声明和初始化分开:

let myConstantDict: [String: String]
switch something {
case .foo:
myConstantDict = ...
case .bar:
myConstantDict = ...
}

关于swift - 初始化字典和在 Swift 中声明有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46190399/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com