在.forEach闭包Swift中使用.sortInPlace

时间:2015-11-02 21:51:49

标签: swift

我正在尝试对字典中的数组进行排序,但是收到错误。这是我试过的代码。我缺少什么&为什么不编译?

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()}

1 个答案:

答案 0 :(得分:2)

Swift默认情况下将闭包内的每个值指定为不可变的。您可以使用 var 将变量声明为可变来修改默认行为,

dict.forEach({ (key: Int, var value: [String]) in
    value.sortInPlace() 
    print(value)
})