Swift 自動對行內閉包提供簡寫實際參數名,你也可以通過 $0 , $1 , $2 等名字來引用閉包的實際參數值。
如果你在閉包表達式中使用這些簡寫實際參數名,那么你可以在閉包的實際參數列表中忽略對其的定義,並且簡寫實際參數名的數字和類型將會從期望的函數類型中推斷出來。 in 關鍵字也能被省略,因為閉包表達式完全由它的函數體組成:
let numbers = [3,2,4,1,5,7,6]; var sortedNumbers = numbers.sorted(by:{$0 < $1}); print(sortedNumbers);//輸出為:[1, 2, 3, 4, 5, 6, 7] sortedNumbers = numbers.sorted(by:{$1 < $0}); print(sortedNumbers);//輸出為:[7, 6, 5, 4, 3, 2, 1]
可以看出,可以用$0、$1、$2來表示調用閉包中參數,$0指代第一個參數,$1指代第二個參數,$2指代第三個參數,以此類推$n+1指代第n個參數,$后的數字代表參數的位置,一一對應。