Quando você declara uma função em Swift, como no seu exemplo...
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
... podemos dar uma etiqueta junto ao nome dos parâmetros, que será usada sempre que alguém chamar essa função.
Ainda no seu exemplo, veja como é a chamada da função definida acima:
meuObjeto.tableView(meuTableView, cellForRowAt: meuIndexPath)
Veja que, mesmo que o segundo parâmetro seja definido como indexPath
(note o "i" minúsculo), ao chamar a função, usamos a etiqueta associada a esse parâmetro (no caso, cellForRowAt
).
No entanto, mesmo com essa etiqueta, caso queiramos dentro da função usar seus argumentos, teremos que usar os nomes diretamente: no caso, tableView
e indexPath
.
Essas etiquetas aumentam a semântica das funções, tornando suas chamas mais legíveis e menos dependente do nome "interno" de seus parâmetros.
É importante dizer também que elas são opcionais, e é possível ocultá-las, usando o underscore. Note que ao chamar a função do seu exemplo, não escrevemos o nome do primeiro parâmetro, justamente porque ele tem um underscore na sua definição.