Ruby Academy · leksjon

Grunnleggende case/in

Strukturell matching

Leksjon 1 av 413 trinn

Grunnleggende case/in er en gratis leksjon i Ruby Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Ruby Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Ruby Academy inneholder totalt 4 leksjoner.

Pattern matching er her

Ruby-uttrykket case/in utfører strukturell pattern matching: Det tester formen og innholdet i dataene, ikke bare likhet. Det er en kraftig videreutvikling av case/when.

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

case/in kontra case/when

case/when sammenligner med === (på en måte som ligner likhet). case/in dekonstruerer verdier og kan binde variabler. Bruk in til å matche struktur.

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

Matche litteraler

En in-gren kan matche en litteralverdi og fungerer da som en presis likhetssjekk.

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

Typemønstre

Hvis De oppgir et klassenavn, matches alle verdier av den typen, ved at === brukes internt.

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

Binde variabler

En frittstående identifikator i et mønster binder den matchede verdien til en ny variabel som De kan bruke i grenen.

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

Jokertegnet

Understreken _ matcher hva som helst uten å binde verdien. Bruk den som en generell standard eller for å ignorere posisjoner.

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

Pin-operatoren

Hvis De vil matche mot verdien til en eksisterende variabel (i stedet for å binde en ny), kan De feste den med ^.

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

Alternative mønstre

Kombiner mønstre med | for å matche ett av flere alternativer i samme gren.

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

Binde hele treffet

Bruk pattern => name for å teste et mønster og samtidig binde den matchede verdien til et navn.

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

NoMatchingPatternError

Hvis ingen in-gren matcher og det ikke finnes noen else, utløser Ruby NoMatchingPatternError. Legg til en else for å håndtere resten på en trygg måte.

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

Matching på én linje

Operatoren => utfører en tilordning med matching mot høyre på én linje og utløser en feil hvis den mislykkes. Operatoren in returnerer derimot true/false.

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

Kort sjekk

Hva skjer hvis en case/in ikke har en matchende gren og heller ingen else?

Oppsummering: Grunnleggende case/in

De har lært det grunnleggende om strukturell matching:

  • case/in matcher form, ikke bare likhet
  • Litteraler, typemønstre og jokertegnet _
  • Variabelbinding og pin-operatoren ^
  • Alternativer med | og pattern => name
  • Manglende treff utløser NoMatchingPatternError
case 7
in Integer => n then puts(n * 2)
end
Gratis å komme i gang

Lær deg Ruby med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
29
Leksjoner
109

Ofte stilte spørsmål

Er leksjonen «Grunnleggende case/in» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Ruby Academy, inkludert «Grunnleggende case/in», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Ruby Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Grunnleggende case/in»?

Strukturell matching Du øver på Ruby Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Ruby Academy?

Ingen tidligere erfaring er nødvendig. Ruby Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «Grunnleggende case/in»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Ruby Academy-leksjonen?

Ja. Alle Ruby Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Grunnleggende case/in
  2. Array- og hash-mønstre
  3. Find-mønstre og guards
  4. Praktiske bruksområder
← Tilbake til Ruby Academy