Ruby Academy · Lektion

Grundlæggende case/in

Strukturel matching

Lektion 1 af 413 trin

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'
end

case/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}"
end

Matchning 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'
end

Typemø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)
end

Jokertegnet

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'
end

Pin-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'
end

Alternative 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'
end

Binding 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)
end

NoMatchingPatternError

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'
end

Matchning 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 result

Hurtigt 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/in matcher struktur, ikke kun lighed
  • Literaler, typemønstre og jokertegnet _
  • Variabelbinding og pin-operatoren ^
  • Alternativer med | og pattern => name
  • Manglende matchning udløser NoMatchingPatternError
case 7
in Integer => n then puts(n * 2)
end
Gratis at komme i gang

Læ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

  1. Grundlæggende case/in
  2. Array- og hash-patterns
  3. Find-patterns og guards
  4. Praktiske anvendelser
← Tilbage til Ruby Academy