Padrões de arrays e hashes
Desestruture dados.
Padrões de arrays e hashes é uma aula grátis de Ruby Academy no CoddyKit. Esta é a aula 2 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.
Padrões de lista
Um padrão de lista corresponde pela posição e pelo comprimento. Cada padrão de elemento é verificado em relação ao elemento correspondente.
case [1, 2, 3]
in [1, 2, 3]
puts 'exact match'
endAssociação de elementos de uma lista
Use identificadores para capturar cada posição em uma variável.
case [10, 20]
in [x, y]
puts(x + y)
endO comprimento é importante
Por padrão, um padrão de lista exige o comprimento exato. Um padrão com dois elementos não corresponderá a uma lista com três elementos.
case [1, 2, 3]
in [a, b]
puts 'two'
in [a, b, c]
puts 'three'
endExpansão para o restante
Uma expansão *rest captura qualquer quantidade de elementos restantes em uma lista, tornando o comprimento flexível.
case [1, 2, 3, 4]
in [first, *rest]
puts(first)
p rest
endExpansão no meio
A expansão pode ficar entre elementos fixos para capturar o início e o fim, ignorando o meio.
case [1, 2, 3, 4, 5]
in [first, *, last]
puts("#{first} ... #{last}")
endPadrões de mapa
Um padrão de mapa corresponde pelas chaves. Ele verifica se as chaves fornecidas existem e se seus valores correspondem; chaves adicionais são permitidas.
case { name: 'Ada', age: 36 }
in { name: 'Ada' }
puts 'found Ada'
endAssociação de valores de um mapa
Capture um valor fornecendo à chave um nome de associação. Escrever apenas a chave associa o valor a uma variável com o mesmo nome.
case { name: 'Bob', age: 25 }
in { name: String => n, age: Integer => a }
puts("#{n} is #{a}")
endAssociação abreviada de chaves
Omitir o padrão após uma chave associa automaticamente uma variável cujo nome é o da chave.
case { city: 'Istanbul' }
in { city: }
puts(city)
endExigindo nenhuma chave adicional
Por padrão, os padrões de mapa ignoram chaves adicionais. Adicione **nil para exigir que somente as chaves listadas estejam presentes.
case { a: 1 }
in { a: 1, **nil }
puts 'exactly one key'
endPadrões aninhados
Os padrões podem ser aninhados livremente, permitindo desestruturar estruturas profundas em uma única ramificação.
data = { user: { name: 'Ada', tags: ['admin', 'dev'] } }
case data
in { user: { name:, tags: [first_tag, *] } }
puts("#{name}: #{first_tag}")
endCorrespondência com JSON analisado
A correspondência de padrões combina muito bem com dados JSON ou CSV analisados, extraindo exatamente os campos necessários.
require 'json'
resp = JSON.parse('{"status":"ok","items":[1,2,3]}', symbolize_names: true)
case resp
in { status: 'ok', items: }
puts(items.sum)
endVerificação rápida
Por padrão, o padrão de mapa in { a: 1 } corresponderá ao mapa { a: 1, b: 2 }?
Recapitulação: padrões de listas e mapas
Você pode desestruturar coleções:
- Padrões de lista correspondem por posição e comprimento
*restcaptura os elementos restantes- Padrões de mapa correspondem por chave e permitem elementos adicionais
- A forma abreviada
{ key: }associa variáveis com o mesmo nome **nilproíbe chaves adicionais; os padrões podem ser profundamente aninhados
case { id: 1, items: [9, 8] }
in { items: [head, *] } then puts head
endAprenda Ruby com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 29
- Aulas
- 109
Perguntas Frequentes
A aula “Padrões de arrays e hashes” é grátis?
Sim — o texto completo de “Padrões de arrays e hashes” é 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 “Padrões de arrays e hashes”?
Desestruture dados. 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 2 de 4.
Quanto tempo leva a aula “Padrões de arrays e hashes”?
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