尝试访问/检查字典中的键并添加值。
myDict["Algebra"]
最初返回nil
. 为什么“零合并”在这里不起作用?
var myDict = [String : [Int]]()
myDict["Algebra"]?.append(contentsOf: [98,78,83,92]) ?? myDict["Algebra"] = [98,78,83,92]
尝试访问/检查字典中的键并添加值。
myDict["Algebra"]
最初返回nil
. 为什么“零合并”在这里不起作用?
var myDict = [String : [Int]]()
myDict["Algebra"]?.append(contentsOf: [98,78,83,92]) ?? myDict["Algebra"] = [98,78,83,92]
虽然这适用于括号,但您要解决的问题正是default
下标所做的,而不会将运算符滥用到具有副作用??
的隐式语句中:if
myDict["Algebra", default: []].append(contentsOf: [98,78,83,92])
您可能还会发现此语法更清晰:
myDict["Algebra", default: []] += [98,78,83,92]
尝试像您一样使用会出现错误: 变异运算符的左侧具有不可变类型“[Int]?”
通过放置括号,它将不会出现编译错误并且可以正常工作
var myDict = [String : [Int]]()
myDict["Algebra"]?.append(contentsOf: [98,78,83,92]) ?? (myDict["Algebra"] = [98,78,83,92])
print(myDict) // ["Algebra": [98, 78, 83, 92]]
中缀运算符的 Swift 文档在这里。