0Pricing
Ruby Academy · Lezione

Basi di case/in

Corrispondenza strutturale

Basi di case/in è una lezione Ruby Academy gratuita su CoddyKit. Questa è la lezione 1 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.

Arriva il pattern matching

L'espressione case/in di Ruby esegue il pattern matching strutturale: verifica la forma e il contenuto dei dati, non solo l'uguaglianza. È un'evoluzione potente rispetto a case/when.

case 42
in Integer
  puts 'it is an integer'
end

case/in e case/when

case/when confronta usando === (con una logica simile all'uguaglianza). case/in destruttura i valori e può associare variabili. Utilizzi in per confrontare la struttura.

case 'hello'
in String => s
  puts "string of length #{s.length}"
end

Corrispondenza con valori letterali

Un ramo in può corrispondere a un valore letterale, comportandosi come un controllo preciso di uguaglianza.

case 3
in 1 then puts 'one'
in 3 then puts 'three'
in _ then puts 'other'
end

Pattern di tipo

Specificare una classe fa corrispondere qualsiasi valore di quel tipo, sfruttando internamente ===.

def describe(x)
  case x
  in Integer then 'number'
  in String then 'text'
  in Array then 'list'
  end
end
puts(describe([1, 2]))

Associazione di variabili

Un identificatore isolato in un pattern associa il valore trovato a una nuova variabile che può utilizzare nel ramo.

case [1, 2]
in [a, b]
  puts(a + b)
end

Il carattere jolly

Il carattere di sottolineatura _ corrisponde a qualsiasi valore senza effettuare associazioni. Lo utilizzi come caso generico o per ignorare determinate posizioni.

case 99
in 0 then puts 'zero'
in _ then puts 'something else'
end

Operatore pin

Per confrontare con il valore di una variabile esistente (invece di associarne una nuova), la blocchi con ^.

expected = 5
case 5
in ^expected
  puts 'matched the pinned value'
end

Pattern alternativi

Combini i pattern con | per far corrispondere una qualsiasi tra diverse alternative in un unico ramo.

case 'b'
in 'a' | 'b' | 'c'
  puts 'in the first three letters'
end

Associazione dell'intera corrispondenza

Utilizzi pattern => name per verificare un pattern e associare contemporaneamente il valore trovato a un nome.

case 'Ruby'
in String => word
  puts(word.upcase)
end

NoMatchingPatternError

Se nessun ramo in corrisponde e non è presente alcun else, Ruby genera NoMatchingPatternError. Aggiunga un else per gestire il resto in modo sicuro.

case 10
in 1 then puts 'one'
else
  puts 'no specific match'
end

Corrispondenza su una riga

L'operatore => esegue una corrispondenza con assegnazione verso destra su una sola riga e genera un errore se fallisce. L'operatore in restituisce invece true/false.

result = [1, 2] in [Integer, Integer]
puts result

Verifica rapida

Che cosa succede se un case/in non ha alcun ramo corrispondente e non ha un else?

Riepilogo: nozioni di base su case/in

Ha appreso i fondamenti della corrispondenza strutturale:

  • case/in verifica la forma, non solo l'uguaglianza
  • Valori letterali, pattern di tipo e carattere jolly _
  • Associazione di variabili e operatore pin ^
  • Alternative con | e pattern => name
  • L'assenza di corrispondenza genera NoMatchingPatternError
case 7
in Integer => n then puts(n * 2)
end

Domande Frequenti

La lezione «Basi di case/in» è gratuita?

Sì — il testo completo di «Basi di case/in» è 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 «Basi di case/in»?

Corrispondenza strutturale 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 1 di 4.

Quanto tempo richiede la lezione «Basi di case/in»?

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