Ruby · Intermediário · Inglês · Técnico
keyword arguments
Argumentos passados por nome, como em criar(nome: 'Ana'). Podem ser obrigatórios ou ter valor padrão, e a ordem na chamada não importa.
Onde usar
Deixam as chamadas legíveis e as APIs estáveis, pois dá para adicionar opções sem quebrar quem já usa. Desde o Ruby 3, hash e keywords são separados, e passar um hash exige **.
Em código
def criar(nome:, idade: 18)
"#{nome} (#{idade})"
end
puts criar(nome: 'Ana')
opts = { nome: 'Rui', idade: 30 }
puts criar(**opts)Exemplos
I switched to keyword arguments so the call reads better.
Mudei para keyword arguments para a chamada ficar mais legível.
Missing a required keyword raises ArgumentError.
Faltar uma keyword obrigatória levanta ArgumentError.
Cuidado
No Ruby 3, não dá para passar um hash no lugar das keywords sem o duplo asterisco; código do Ruby 2 que dependia disso quebra.
Sinônimos
argumentos nomeados
Antônimos
argumentos posicionais