我想了解swift中的閉包,並且缺少一些基本的東西。
考慮下面的例子:Swift Map Sorted Closure
var numbers = [20, 19, 7, 12]
numbers.map({(number: Int) -> Int in return 3 * number})
numbers.map {(number: Int) -> Int in return 3 * number}
numbers.sorted {(n1:Int, n2:Int) -> Bool in return n1 < n2}
爲什麼多餘的括號在地圖工作,但沒有排序? 即
numbers.sorted({(n1:Int, n2:Int) -> Bool in return n1 < n2})
不編譯...
"error: argument passed to call that takes no arguments"
請會有人能解釋的區別?謝謝。
這裏的概念區別是什麼?即爲什麼map沒有**:例如**,或者爲什麼** by:**被指定爲sorted? –
@DuncanRowland,因爲正如我在我的回答中提到的那樣,它會返回一個帶有映射結果的新數組,它不應該映射數組本身。 –
謝謝,但正如你所說,**排序**和**映射**返回新對象(只有**排序** - 我沒有考慮 - 改變現有的實例)。 –