Grundlæggende case/in
Strukturel matching
Grundlæggende case/in er en gratis Ruby Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Ruby Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Ruby Academy-kurset indeholder 4 lektioner i alt.
Mønstermatchning kommer
Ruby-udtrykket case/in udfører strukturel mønstermatchning: Det undersøger datastrukturen og dens indhold, ikke kun lighed. Det er en kraftfuld forbedring i forhold til case/when.
case 42
in Integer
puts 'it is an integer'
endcase/in kontra case/when
case/when sammenligner med === (på en lighedsbaseret måde). case/in dekonstrukterer værdier og kan binde variabler. Brug in til at matche struktur.
case 'hello'
in String => s
puts "string of length #{s.length}"
endMatchning af bogstavelige værdier
En in-gren kan matche en bogstavelig værdi og fungerer dermed som et præcist lighedstjek.
case 3
in 1 then puts 'one'
in 3 then puts 'three'
in _ then puts 'other'
endTypemønstre
Når du angiver en klasse, matcher den alle værdier af den type ved internt at bruge ===.
def describe(x)
case x
in Integer then 'number'
in String then 'text'
in Array then 'list'
end
end
puts(describe([1, 2]))Binding af variabler
En fritstående identifikator i et mønster binder den matchede værdi til en ny variabel, som du kan bruge i grenen.
case [1, 2]
in [a, b]
puts(a + b)
endJokertegnet
Understregningen _ matcher alt uden at binde en værdi. Brug den til at samle alt eller ignorere bestemte positioner.
case 99
in 0 then puts 'zero'
in _ then puts 'something else'
endPin-operatoren
Hvis du vil matche mod værdien af en eksisterende variabel i stedet for at binde en ny, skal du fastlåse den med ^.
expected = 5
case 5
in ^expected
puts 'matched the pinned value'
endAlternative mønstre
Kombiner mønstre med | for at matche en af flere alternativer i den samme gren.
case 'b'
in 'a' | 'b' | 'c'
puts 'in the first three letters'
endBinding af hele matchningen
Brug pattern => name til at teste et mønster og samtidig binde den matchede værdi til et navn.
case 'Ruby'
in String => word
puts(word.upcase)
endNoMatchingPatternError
Hvis ingen in-gren matcher, og der ikke er en else, kaster Ruby NoMatchingPatternError. Tilføj en else for at håndtere resten sikkert.
case 10
in 1 then puts 'one'
else
puts 'no specific match'
endMatchning på én linje
Operatoren => udfører en højrevendt tildelingsmatchning på én linje og kaster en fejl, hvis den mislykkes. Operatoren in returnerer i stedet true/false.
result = [1, 2] in [Integer, Integer]
puts resultHurtigt tjek
Hvad sker der, hvis en case/in ikke har en matchende gren og heller ingen else?
Opsummering: Grundlæggende case/in
Du har lært det grundlæggende i strukturel matchning:
case/inmatcher struktur, ikke kun lighed- Literaler, typemønstre og jokertegnet
_ - Variabelbinding og pin-operatoren
^ - Alternativer med
|ogpattern => name - Manglende matchning udløser
NoMatchingPatternError
case 7
in Integer => n then puts(n * 2)
endLær Ruby med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 29
- Lektioner
- 109
Ofte stillede spørgsmål
Er lektionen “Grundlæggende case/in” gratis?
Ja — alle 3 lektioner i læringssporet Ruby Academy, inklusive “Grundlæggende case/in”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Ruby Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Grundlæggende case/in”?
Strukturel matching Du øver dig i Ruby Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Ruby Academy?
Der kræves ingen tidligere erfaring. Ruby Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.
Hvor lang tid tager lektionen “Grundlæggende case/in”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Ruby Academy-lektion?
Ja. Alle Ruby Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Grundlæggende case/in
- Array- og hash-patterns
- Find-patterns og guards
- Praktiske anvendelser