1
resposta

Qual a vantagem de utilizar métodos com parâmetros?

Fiquei com uma dúvida, qual é a vantagem de criar métodos com parâmetros?

Digo,

Se o trecho de código abaixo,

func alimentoConsumido() { print("O alimento consumido foi: (nome)") }

alimentoConsumido()

tem a mesma saída que este outro trecho de código,

func alimentoConsumido(nome: String, caloria: Double) { print("O alimento consumido foi: (nome)") }

alimentoConsumido(nome: nome, caloria: caloria)

Porque eu criaria um método com parâmetro ao invés de um método simples?

1 resposta

Acho que sua dúvida é mais sobre métodos com parâmetros nomeados do que sobre métodos com parâmetros, né?

Algo como:

Por que criar um método alimentoConsumido(nome: nome) quando posso criar um método comum alimentoConsumido(nome)?

A ideia dos parâmetros nomeados é dar mais significado para os argumentos de um método. Veja esse exemplo:

Imagine um método que faça a divisão entre dois números inteiros. Uma chamada desse método poderia ser:

let resultado = divide(3, 2)

Ao ver essa chamada, não fica claro a conta que está sendo feita: estamos fazendo 3/2 ou 2/3?

Podemos melhorar o nome do método, para algo como:

let resultado = dividePor(3, 2)

Ao ler esse método em voz alta, parece que estamos dizendo "divide por 3 o número 2", induzindo a gente a imaginar que a conta seja 2/3.

Para termos certeza de quem é o numerador e o denominador, só olhando o conteúdo do método.

Porém, em Swift, podemos colocar um nome para cada parâmetro, então nosso método pode ficar assim:

let resultado = divide(3, por: 2)

Ao ler esse método em voz alta, não há dúvidas de qual conta é feita: 3/2.

A assinatura ficaria assim:

func divide(_ numerador: Int, por denominador: Int) -> Int

Obs: caso queiramos suprimir o nome do argumento, basta colocar underline (_) como fiz no argumento numerador.