0Pricing
Ruby Academy · Lezione

Pattern per array e hash

Destrutturare i dati

Pattern per array e hash è una lezione Ruby Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Ruby Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Ruby Academy include 4 lezioni in totale.

Pattern per array

Un pattern per array verifica la posizione e la lunghezza. Ogni pattern elemento viene confrontato con l'elemento corrispondente.

case [1, 2, 3]
in [1, 2, 3]
  puts 'exact match'
end

Associazione degli elementi di un array

Utilizzi gli identificatori per acquisire ogni posizione in una variabile.

case [10, 20]
in [x, y]
  puts(x + y)
end

La lunghezza è importante

Per impostazione predefinita, un pattern per array richiede la lunghezza esatta. Un pattern di 2 elementi non corrisponde a un array di 3 elementi.

case [1, 2, 3]
in [a, b]
  puts 'two'
in [a, b, c]
  puts 'three'
end

Lo splat per il resto

Uno splat *rest acquisisce un numero qualsiasi di elementi rimanenti in un array, rendendo flessibile la lunghezza.

case [1, 2, 3, 4]
in [first, *rest]
  puts(first)
  p rest
end

Splat al centro

Lo splat può trovarsi tra elementi fissi per acquisire l'inizio e la fine ignorando la parte centrale.

case [1, 2, 3, 4, 5]
in [first, *, last]
  puts("#{first} ... #{last}")
end

Pattern per hash

Un pattern per hash verifica le chiavi. Controlla che le chiavi specificate esistano e che i relativi valori corrispondano; le chiavi aggiuntive sono consentite.

case { name: 'Ada', age: 36 }
in { name: 'Ada' }
  puts 'found Ada'
end

Associazione dei valori di un hash

Acquisisca un valore assegnando alla chiave un nome di associazione. Scrivendo solo la chiave, si associa una variabile con lo stesso nome.

case { name: 'Bob', age: 25 }
in { name: String => n, age: Integer => a }
  puts("#{n} is #{a}")
end

Associazione abbreviata delle chiavi

Omettendo il pattern dopo una chiave, si associa automaticamente una variabile con il nome della chiave.

case { city: 'Istanbul' }
in { city: }
  puts(city)
end

Richiedere l'assenza di chiavi aggiuntive

Per impostazione predefinita, i pattern per hash ignorano le chiavi aggiuntive. Aggiunga **nil per richiedere che siano presenti solo le chiavi elencate.

case { a: 1 }
in { a: 1, **nil }
  puts 'exactly one key'
end

Pattern annidati

I pattern possono essere annidati liberamente, consentendo di destrutturare strutture profonde in un unico ramo.

data = { user: { name: 'Ada', tags: ['admin', 'dev'] } }
case data
in { user: { name:, tags: [first_tag, *] } }
  puts("#{name}: #{first_tag}")
end

Corrispondenza con JSON analizzato

Il pattern matching si abbina perfettamente ai dati JSON o CSV analizzati, estraendo esattamente i campi necessari.

require 'json'
resp = JSON.parse('{"status":"ok","items":[1,2,3]}', symbolize_names: true)
case resp
in { status: 'ok', items: }
  puts(items.sum)
end

Verifica rapida

Per impostazione predefinita, il pattern per hash in { a: 1 } corrisponde all'hash { a: 1, b: 2 }?

Riepilogo: pattern per array e hash

Ora può destrutturare le raccolte:

  • I pattern per array verificano posizione e lunghezza
  • *rest acquisisce gli elementi rimanenti
  • I pattern per hash verificano le chiavi e consentono quelle aggiuntive
  • La forma abbreviata { key: } associa variabili con lo stesso nome
  • **nil vieta le chiavi aggiuntive; i pattern possono essere annidati in profondità
case { id: 1, items: [9, 8] }
in { items: [head, *] } then puts head
end

Domande Frequenti

La lezione «Pattern per array e hash» è gratuita?

Sì — il testo completo di «Pattern per array e hash» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Ruby Academy, passa a CoddyKit PRO. Il corso Ruby Academy include 4 lezioni in totale.

Cosa imparerò in «Pattern per array e hash»?

Destrutturare i dati Eserciti Ruby Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Ruby Academy?

Non è richiesta alcuna esperienza precedente. Ruby Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Pattern per array e hash»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Ruby Academy?

Sì. Ogni lezione Ruby Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Basi di case/in
  2. Pattern per array e hash
  3. Pattern find e guardie
  4. Casi d'uso pratici
← Torna a Ruby Academy