0Pricing
Ruby Academy · Lekcja

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

Wią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)
end

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

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

Splat 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}")
end

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

Wią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}")
end

Skró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)
end

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

Wzorce 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}")
end

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

Szybkie 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
  • *rest przechwytuje 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
  • **nil zabrania dodatkowych kluczy, a wzorce można głęboko zagnieżdżać
case { id: 1, items: [9, 8] }
in { items: [head, *] } then puts head
end

Czę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

  1. Podstawy case/in
  2. Wzorce tablic i hashy
  3. Wzorce find i strażnicy
  4. Praktyczne zastosowania
← Powrót do Ruby Academy