Ruby · Intermediário · Inglês · Técnico
endless method
Sintaxe do Ruby 3.0 para definir um método em uma só expressão, sem end, como def dobro(x) = x * 2. Serve para métodos curtos e enxuga as classes.
Onde usar
Aparece em leitores, predicados e delegações de uma linha. Evite para lógica longa, pois a legibilidade cai.
Em código
def dobro(x) = x * 2
def ola(nome = "mundo") = "ola, #{nome}"
p dobro(4) # => 8
p ola # => "ola, mundo"
p ola("Ana") # => "ola, Ana"Exemplos
I turned the getter into an endless method.
Transformei o getter em um endless method.
Endless methods fit one-line predicates well.
Endless methods combinam com predicados de uma linha.
Cuidado
Não funciona para setters (nomes terminados em =) e não substitui métodos com várias instruções; nesses casos use def e end.
Sinônimos
método de uma linha