ExpertiDict

Ruby · Essencial · Inglês · Técnico

unless

/ənˈlɛs/palavra-chave

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, Ana

Exemplos

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

Veja também

Todos os termos de Ruby