Wzorce tablic i hashy
Destrukturyzowanie danych
Wzorce tablic i hashy to bezpłatna lekcja Ruby Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Ruby Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Ruby Academy zawiera 4 lekcji w sumie.
Wzorce tablic
Wzorzec tablicy dopasowuje elementy według pozycji i długości. Każdy wzorzec elementu jest sprawdzany względem odpowiadającego mu elementu.
case [1, 2, 3]
in [1, 2, 3]
puts 'exact match'
endWiązanie elementów tablicy
Można użyć identyfikatorów, aby przechwycić każdą pozycję do zmiennej.
case [10, 20]
in [x, y]
puts(x + y)
endDługość ma znaczenie
Domyślnie wzorzec tablicy wymaga dokładnej długości. Wzorzec składający się z 2 elementów nie dopasuje tablicy zawierającej 3 elementy.
case [1, 2, 3]
in [a, b]
puts 'two'
in [a, b, c]
puts 'three'
endSplat dla pozostałych elementów
Splat *rest przechwytuje dowolną liczbę pozostałych elementów do tablicy, dzięki czemu długość może być zmienna.
case [1, 2, 3, 4]
in [first, *rest]
puts(first)
p rest
endSplat w środku
Splat może znajdować się między stałymi elementami, aby przechwycić początek i koniec, pomijając środek.
case [1, 2, 3, 4, 5]
in [first, *, last]
puts("#{first} ... #{last}")
endWzorce hashy
Wzorzec hasha dopasowuje elementy według kluczy. Sprawdza, czy podane klucze istnieją i czy ich wartości pasują; dodatkowe klucze są dozwolone.
case { name: 'Ada', age: 36 }
in { name: 'Ada' }
puts 'found Ada'
endWiązanie wartości hasha
Wartość można przechwycić, podając nazwę wiązania przy kluczu. Samo zapisanie klucza wiąże wartość ze zmienną o tej samej nazwie.
case { name: 'Bob', age: 25 }
in { name: String => n, age: Integer => a }
puts("#{n} is #{a}")
endSkrócone wiązanie kluczy
Pominięcie wzorca po kluczu automatycznie wiąże zmienną nazwaną tak samo jak klucz.
case { city: 'Istanbul' }
in { city: }
puts(city)
endWymaganie braku dodatkowych kluczy
Wzorce hashy domyślnie ignorują dodatkowe klucze. Należy dodać **nil, aby wymagać, żeby obecne były wyłącznie wymienione klucze.
case { a: 1 }
in { a: 1, **nil }
puts 'exactly one key'
endWzorce zagnieżdżone
Wzorce można swobodnie zagnieżdżać, co pozwala zdekonstruować głębokie struktury w jednej gałęzi.
data = { user: { name: 'Ada', tags: ['admin', 'dev'] } }
case data
in { user: { name:, tags: [first_tag, *] } }
puts("#{name}: #{first_tag}")
endDopasowywanie przeanalizowanego JSON
Dopasowywanie wzorców doskonale współpracuje z przeanalizowanymi danymi JSON lub CSV, wyodrębniając dokładnie potrzebne pola.
require 'json'
resp = JSON.parse('{"status":"ok","items":[1,2,3]}', symbolize_names: true)
case resp
in { status: 'ok', items: }
puts(items.sum)
endSzybkie sprawdzenie
Czy domyślnie wzorzec hasha in { a: 1 } dopasuje hash { a: 1, b: 2 }?
Podsumowanie: wzorce tablic i hashy
Potrafią już Państwo dekonstruować kolekcje:
- Wzorce tablic dopasowują elementy według pozycji i długości
*restprzechwytuje pozostałe elementy- Wzorce hashy dopasowują elementy według klucza i dopuszczają dodatkowe klucze
- Skrócony zapis
{ key: }wiąże zmienne o tych samych nazwach **nilzabrania dodatkowych kluczy, a wzorce można głęboko zagnieżdżać
case { id: 1, items: [9, 8] }
in { items: [head, *] } then puts head
endCzęsto zadawane pytania
Czy lekcja „Wzorce tablic i hashy” jest bezpłatna?
Tak — pełny tekst „Wzorce tablic i hashy” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Ruby Academy, przejdź na CoddyKit PRO. Kurs Ruby Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Wzorce tablic i hashy”?
Destrukturyzowanie danych Ćwiczysz Ruby Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Ruby Academy?
Nie wymagamy żadnego doświadczenia. Ruby Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Wzorce tablic i hashy”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Ruby Academy?
Tak. Każda lekcja Ruby Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Podstawy case/in
- Wzorce tablic i hashy
- Wzorce find i strażnicy
- Praktyczne zastosowania