Ruby · Essencial · Inglês · Técnico
unless
Condicional que executa o código quando a expressão é falsa ou nil, o oposto de if. Lê-se como a menos que e deixa verificações negativas mais naturais.
Onde usar
Aparece em guardas no início de métodos, como return unless user.valid?. Em code review, evita-se unless com else ou com condições compostas, pois confunde a leitura.
Em código
def saudar(nome)
return puts("sem nome") unless nome
puts "Oi, #{nome}"
end
saudar(nil) # => sem nome
saudar("Ana") # => Oi, AnaExemplos
Return early unless the user is present.
Retorne cedo, a menos que o usuário exista.
Unless with an else is hard to read, use if.
Unless com else é difícil de ler, use if.
Cuidado
Não use unless com else nem com várias condições unidas por and e or; troque por if.
Antônimos
if