我正在尝试对字典中的数组进行排序,但是收到错误。这是我试过的代码。我缺少什么&为什么不编译?
var dict = [Int: [String]]()
dict[1] = ["Zack", "James", "Bill", "Quin", "Mike", "Adam"]
dict[1]?.sortInPlace()
dict.forEach{$0.1.sortInPlace()} // error: cannot use mutating member on immutable value of type '[String]'
编辑:我意识到默认情况下为每个循环分配一个常量后,我能够得到以下代码:
db.forEach{db[$0.0] = $0.1.sort()}
答案 0 :(得分:2)
Swift默认情况下将闭包内的每个值指定为不可变的。您可以使用 var 将变量声明为可变来修改默认行为,
dict.forEach({ (key: Int, var value: [String]) in
value.sortInPlace()
print(value)
})