Grunnleggende case/in
Strukturell matching
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'
endcase/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}"
endMatche 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'
endTypemø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)
endJokertegnet
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'
endPin-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'
endAlternative 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'
endBinde 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)
endNoMatchingPatternError
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'
endMatching 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 resultKort 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/inmatcher form, ikke bare likhet- Litteraler, typemønstre og jokertegnet
_ - Variabelbinding og pin-operatoren
^ - Alternativer med
|ogpattern => name - Manglende treff utløser
NoMatchingPatternError
case 7
in Integer => n then puts(n * 2)
endLæ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
- Grunnleggende case/in
- Array- og hash-mønstre
- Find-mønstre og guards
- Praktiske bruksområder