0Pricing
Ruby Academy · Aula

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'
end

case/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}"
end

Correspondê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'
end

Padrõ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)
end

O 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'
end

Operador 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'
end

Padrõ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'
end

Associaçã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)
end

NoMatchingPatternError

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'
end

Correspondê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 result

Verificaçã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/in corresponde à 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 | e pattern => name
  • A ausência de correspondência gera NoMatchingPatternError
case 7
in Integer => n then puts(n * 2)
end

Perguntas 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

  1. Fundamentos de case/in
  2. Padrões de arrays e hashes
  3. Padrões de busca e guardas
  4. Casos de uso práticos
← Voltar para Ruby Academy