Función de conversión implícita que recibe tupla
Me acabo de enterar de que hay un elenco implícito:
Desde la función tomando n parámetros(A, B, ...) -> R
Para tomar una n-tupla((A, B, ...)) -> R
Ejemplo n ° 1
func withTuple(_ a: (Int, Int)) { }
func withoutTuple(_ a: Int, _ b: Int) { }
func call(tupleFunction: ((Int, Int)) -> ()) {
tupleFunction((1, 2))
}
call(tupleFunction: withTuple)
call(tupleFunction: withoutTuple) // Magic here
(Código válido de Swift 4.2)
Ejemplo n ° 2
[(1, 2), (3, 3)].map(*) // Magic here
¿Está documentado este comportamiento en alguna parte?