Ruby · Essencial · Inglês · Técnico
case when
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) # => jovemExemplos
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