【发布时间】:2017-11-17 19:12:36
【问题描述】:
目前我正在关注这本好书 App Development with Swift,到目前为止,一切都被解释得很棒。然而,在练习之后,我发现了一些我很想更好地理解的代码。我已经尝试到处查找信息,但我什至不知道名称是什么或如何找到它。所以废话不多说,如下:
我有一本字典:
var frequencyOfAnswers: [AnimalType: Int] = [:]
AnymalType 只是一个 enum 有四个案例。然后他们对frequencyOfAnswers进行映射:
let responseTypes = responses.map { $0.type }
到目前为止一切都很好。但是在下面的迭代中:
for response in responseTypes {
frequencyOfAnswers[response] = (frequencyOfAnswers[response]
?? 0) + 1
}
我无法完全理解?? 的用法。我知道这里的重点是,如果新元素尚未进入字典,那么将被添加并且它的值为 1。如果它已经存在,那么它对应的整数值将增加 1 .
我想了解有关此语法的更多信息。如果你们中的任何人能给我提供一个好的文字、网页或解释,我将非常感激。
提前谢谢你。
【问题讨论】:
-
见here
-
你也可以在 Swift 4 中说
frequencyOfAnswers[response, default: 0] += 1。
标签: swift dictionary