¿Qué significan $ 0 y $ 1 en swift 2.1, swift 3, swift 3.1?

let sortedNumbers = numbers.sort { $0 > $1 } print(sortedNumbers) 

¿Alguien puede explicar, lo que $0 y $1 significa en forma rápida?

Más muestra

 array.forEach { actions.append($0) } 

$0 es el primer parámetro que se pasa al cierre. $1 es el segundo parámetro, etc. Ese cierre que mostró es una abreviatura de:

 let sortedNumbers = numbers.sort { (firstObject, secondObject) in return firstObject > secondObject } 

Representa los arguments abreviados enviados a un cierre, este ejemplo lo desglosa:

Swift 3.1:

 var add = { (arg1: Int, arg2: Int) -> Int in return arg1 + arg2 } add = { (arg1, arg2) -> Int in return arg1 + arg2 } add = { arg1, arg2 in arg1 + arg2 } add = { $0 + $1 } let result = add(20, 20) // 40 

Se refieren a los arguments primero y segundo de orderación. Aquí, sort compara 2 elementos y los ordera. Puede search la documentation oficial de Swift para get más información:

Swift automáticamente proporciona nombres de arguments de taquigrafía a los cierres en línea, que pueden usarse para referirse a los valores de los arguments del cierre por los nombres $ 0, $ 1, $ 2, y así sucesivamente.

Es un nombre de argumento taquigráfico.

Swift automáticamente proporciona nombres de arguments de taquigrafía a los cierres en línea, que pueden usarse para referirse a los valores de los arguments del cierre por los nombres $ 0, $ 1, $ 2, y así sucesivamente.

Si utiliza estos nombres de arguments taquicharts dentro de su expresión de cierre, puede omitir la list de arguments del cierre de su definición, y el número y el tipo de los nombres de arguments taquicharts se deducirán del tipo de function esperada. La palabra key in también se puede omitir, ya que la expresión de cierre está compuesta completamente por su cuerpo:

  reversed = names.sort( { $0 > $1 } ) 

Aquí, $ 0 y $ 1 se refieren a los arguments de la primera y segunda cadena del cierre.