Quando criamos uma função no swift 2.2, temos dois nomes de parâmetros: os externos à função (que são facultativos) e os internos à função, funcionando dessa maneira:
func soma(nomeExterno nomeInterno:Int, outroNomeExterno outroNomeInterno:Int) -> Int{
return nomeInterno + outroNomeInterno;
}
Veja que dentro da função nos referimos aos parâmetros por nomeInterno
e outroNomeInterno
. Para chamar essa função, teremos essa sintaxe:
soma(nomeExterno:1, outroNomeExterno:2);
Veja que na chamada da função soma nos referimos aos argumentos como nomeExterno
e outroNomeExterno
.
No caso da função add
omitimos o uso dos nomes externos. Sendo assim, devemos nos referenciar aos argumentos passados usando apenas os nomes internos:
add(name:"Cake", calories:40.7)
No entanto, quando não usamos nomes externos, podemos omitir o nome do primeiro argumento na chamada da função:
add("Cake", calories:40.7)
Resultando no código que você tem.
Tudo isso que eu disse está descrito em detalhes na documentação do Swift em Function Parameter Names.