Fundamentos de case/in
Correspondência estrutural.
Fundamentos de case/in é uma aula grátis de Ruby Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Ruby Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Ruby Academy inclui 4 aulas no total.
A chegada da correspondência de padrões
A expressão case/in do Ruby realiza correspondência estrutural de padrões: ela testa a forma e o conteúdo dos dados, não apenas a igualdade. É uma evolução poderosa em relação a case/when.
case 42
in Integer
puts 'it is an integer'
endcase/in versus case/when
case/when compara usando === (no estilo de igualdade). case/in desestrutura valores e pode associar variáveis. Use in para corresponder à estrutura.
case 'hello'
in String => s
puts "string of length #{s.length}"
endCorrespondência com literais
Uma ramificação in pode corresponder a um valor literal, funcionando como uma verificação precisa de igualdade.
case 3
in 1 then puts 'one'
in 3 then puts 'three'
in _ then puts 'other'
endPadrões de tipo
Nomear uma classe faz a correspondência com qualquer valor desse tipo, usando === internamente.
def describe(x)
case x
in Integer then 'number'
in String then 'text'
in Array then 'list'
end
end
puts(describe([1, 2]))Associação de variáveis
Um identificador isolado em um padrão associa o valor correspondente a uma nova variável que você pode usar na ramificação.
case [1, 2]
in [a, b]
puts(a + b)
endO curinga
O sublinhado _ corresponde a qualquer coisa sem fazer uma associação. Use-o como correspondência geral ou para ignorar posições.
case 99
in 0 then puts 'zero'
in _ then puts 'something else'
endOperador de fixação
Para corresponder ao valor de uma variável existente (em vez de associar uma nova), fixe-o com ^.
expected = 5
case 5
in ^expected
puts 'matched the pinned value'
endPadrões alternativos
Combine padrões com | para corresponder a qualquer uma de várias alternativas em uma única ramificação.
case 'b'
in 'a' | 'b' | 'c'
puts 'in the first three letters'
endAssociação da correspondência completa
Use pattern => name para testar um padrão e associar simultaneamente o valor correspondente a um nome.
case 'Ruby'
in String => word
puts(word.upcase)
endNoMatchingPatternError
Se nenhuma ramificação in corresponder e não houver else, o Ruby gera NoMatchingPatternError. Adicione um else para tratar o restante com segurança.
case 10
in 1 then puts 'one'
else
puts 'no specific match'
endCorrespondência em uma linha
O operador => faz uma atribuição à direita com correspondência em uma linha e gera um erro se ela falhar. Já o operador in retorna verdadeiro ou falso.
result = [1, 2] in [Integer, Integer]
puts resultVerificação rápida
O que acontece se um case/in não tiver uma ramificação correspondente nem um else?
Recapitulação: fundamentos de case/in
Você aprendeu os fundamentos da correspondência estrutural:
case/incorresponde à forma, não apenas à igualdade- Literais, padrões de tipo e o curinga
_ - Associação de variáveis e o operador de fixação
^ - Alternativas com
|epattern => name - A ausência de correspondência gera
NoMatchingPatternError
case 7
in Integer => n then puts(n * 2)
endPerguntas Frequentes
A aula “Fundamentos de case/in” é grátis?
Sim — o texto completo de “Fundamentos de case/in” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Ruby Academy, atualize para CoddyKit PRO. O curso de Ruby Academy inclui 4 aulas no total.
O que vou aprender em “Fundamentos de case/in”?
Correspondência estrutural. Você pratica Ruby Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Ruby Academy?
Nenhuma experiência prévia é necessária. Ruby Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Fundamentos de case/in”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Ruby Academy?
Sim. Cada aula de Ruby Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Fundamentos de case/in
- Padrões de arrays e hashes
- Padrões de busca e guardas
- Casos de uso práticos