Array- och hash-mönster
Destrukturera data.
Array- och hash-mönster är en gratis lektion i Ruby Academy på CoddyKit. Detta är lektion 2 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Ruby Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Ruby Academy innehåller totalt 4 lektioner.
Arraymönster
Ett arraymönster matchar efter position och längd. Varje elementmönster kontrolleras mot motsvarande element.
case [1, 2, 3]
in [1, 2, 3]
puts 'exact match'
endBinda arrayelement
Använd identifierare för att fånga varje position i en variabel.
case [10, 20]
in [x, y]
puts(x + y)
endLängden spelar roll
Som standard kräver ett arraymönster exakt längd. Ett mönster med två element matchar inte en array med tre element.
case [1, 2, 3]
in [a, b]
puts 'two'
in [a, b, c]
puts 'three'
endSplat för återstående element
En splat *rest fångar valfritt antal återstående element i en array, vilket gör längden flexibel.
case [1, 2, 3, 4]
in [first, *rest]
puts(first)
p rest
endSplat i mitten
Splat-operatorn kan placeras mellan fasta element för att fånga början och slutet samtidigt som mitten ignoreras.
case [1, 2, 3, 4, 5]
in [first, *, last]
puts("#{first} ... #{last}")
endHashmönster
Ett hashmönster matchar efter nycklar. Det kontrollerar att de angivna nycklarna finns och att deras värden matchar; extra nycklar är tillåtna.
case { name: 'Ada', age: 36 }
in { name: 'Ada' }
puts 'found Ada'
endBinda hashvärden
Fånga ett värde genom att ange ett bindningsnamn för nyckeln. Om bara nyckeln skrivs binds en variabel med samma namn.
case { name: 'Bob', age: 25 }
in { name: String => n, age: Integer => a }
puts("#{n} is #{a}")
endFörkortad nyckelbindning
Om mönstret efter en nyckel utelämnas binds automatiskt en variabel med samma namn som nyckeln.
case { city: 'Istanbul' }
in { city: }
puts(city)
endKräva inga extra nycklar
Hashmönster ignorerar extra nycklar som standard. Lägg till **nil för att kräva att endast de angivna nycklarna finns.
case { a: 1 }
in { a: 1, **nil }
puts 'exactly one key'
endNäslade mönster
Mönster kan nästlas fritt, så att djupa strukturer kan destruktureras i en enda gren.
data = { user: { name: 'Ada', tags: ['admin', 'dev'] } }
case data
in { user: { name:, tags: [first_tag, *] } }
puts("#{name}: #{first_tag}")
endMatcha tolkad JSON
Mönstermatchning passar utmärkt ihop med parsade JSON- eller CSV-data och plockar ut exakt de fält som behövs.
require 'json'
resp = JSON.parse('{"status":"ok","items":[1,2,3]}', symbolize_names: true)
case resp
in { status: 'ok', items: }
puts(items.sum)
endSnabb kontroll
Matchar hashmönstret in { a: 1 } som standard hashen { a: 1, b: 2 }?
Sammanfattning: Array- och hashmönster
Du kan destrukturera samlingar:
- Arraymönster matchar efter position och längd
*restfångar återstående element- Hashmönster matchar efter nyckel och tillåter extra nycklar
- Förkortningen
{ key: }binder variabler med samma namn **nilförbjuder extra nycklar; mönster kan nästlas djupt
case { id: 1, items: [9, 8] }
in { items: [head, *] } then puts head
endLär dig Ruby med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 29
- Lektioner
- 109
Vanliga frågor
Är lektionen ”Array- och hash-mönster” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Ruby Academy, inklusive ”Array- och hash-mönster”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Ruby Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Array- och hash-mönster”?
Destrukturera data. Ni övar på Ruby Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Ruby Academy?
Du behöver inga förkunskaper. Utbildningen i Ruby Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Array- och hash-mönster”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Ruby Academy-lektionen?
Ja. Varje Ruby Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Grunderna i case/in
- Array- och hash-mönster
- Find-mönster och guards
- Praktiska användningsområden