ExpertiDict

Ruby · Essencial · Inglês · Técnico

case when

/keɪs wɛn/estrutura de controle

Estrutura de vários ramos que compara um valor com cada when usando o operador ===. Aceita valores, ranges, classes, regex e lambdas, indo além de um simples switch.

Onde usar

Aparece ao decidir comportamento por tipo, faixa ou padrão de texto. No code review, lembre que não há fall-through: só o primeiro when que casar é executado.

Em código

def faixa(idade)
  case idade
  when 0...12 then "crianca"
  when 12...18 then "jovem"
  else "adulto"
  end
end
puts faixa(15)  # => jovem

Exemplos

I replaced the if chain with a case when.

Troquei a cadeia de ifs por um case when.

Case when can match ranges and classes, not only values.

O case when casa ranges e classes, não só valores.

Cuidado

Não espere fall-through como em C ou Java, nem precisa de break: cada when termina sozinho.

Sinônimos

case/when

Veja também

Todos os termos de Ruby