2015-11-02 33 views
1

我正在嘗試對字典中的數組進行排序,但出現錯誤。這是我嘗試過的代碼。我在想什麼&爲什麼不能編譯?在.forEach閉包中使用.sortInPlace 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()} 

回答

2

斯威夫特,默認情況下,內部封閉的每個值賦給是不可改變的。您可以通過使用VAR因爲這樣,

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

「變種」參數被取消,並將在斯威夫特3被刪除聲明變量作爲可變修改默認行爲。 – Manuel