0Pricing
Ruby Academy · Lekcja

Podstawy case/in

Dopasowywanie strukturalne

Podstawy case/in to bezpłatna lekcja Ruby Academy na CoddyKit. To lekcja 1 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.

Pojawia się dopasowywanie wzorców

Wyrażenie Ruby case/in wykonuje strukturalne dopasowywanie wzorców: sprawdza kształt i zawartość danych, a nie tylko ich równość. Jest to znaczne ulepszenie względem case/when.

case 42
in Integer
  puts 'it is an integer'
end

case/in a case/when

case/when porównuje za pomocą === (w stylu porównywania równościowego). case/in dekonstruuje wartości i może wiązać zmienne. Należy używać in do dopasowywania struktury.

case 'hello'
in String => s
  puts "string of length #{s.length}"
end

Dopasowywanie literałów

Gałąź in może dopasowywać wartość literałową, działając jak precyzyjne sprawdzenie równości.

case 3
in 1 then puts 'one'
in 3 then puts 'three'
in _ then puts 'other'
end

Wzorce typów

Podanie nazwy klasy dopasowuje dowolną wartość tego typu, wykorzystując wewnętrznie operator ===.

def describe(x)
  case x
  in Integer then 'number'
  in String then 'text'
  in Array then 'list'
  end
end
puts(describe([1, 2]))

Wiązanie zmiennych

Samodzielny identyfikator we wzorcu wiąże dopasowaną wartość z nową zmienną, której można używać w tej gałęzi.

case [1, 2]
in [a, b]
  puts(a + b)
end

Symbol wieloznaczny

Podkreślenie _ dopasowuje wszystko, ale nie wiąże wartości. Można go używać jako wzorca ogólnego lub do pomijania pozycji.

case 99
in 0 then puts 'zero'
in _ then puts 'something else'
end

Operator przypięcia

Aby dopasować wartość istniejącej zmiennej, zamiast wiązać nową zmienną, należy przypiąć ją za pomocą ^.

expected = 5
case 5
in ^expected
  puts 'matched the pinned value'
end

Wzorce alternatywne

Można łączyć wzorce za pomocą |, aby w jednej gałęzi dopasować dowolną z kilku alternatyw.

case 'b'
in 'a' | 'b' | 'c'
  puts 'in the first three letters'
end

Wiązanie całego dopasowania

Użycie pattern => name pozwala jednocześnie sprawdzić wzorzec i przypisać dopasowaną wartość do nazwy.

case 'Ruby'
in String => word
  puts(word.upcase)
end

NoMatchingPatternError

Jeśli żadna gałąź in nie pasuje i nie ma gałęzi else, Ruby zgłasza NoMatchingPatternError. Należy dodać else, aby bezpiecznie obsłużyć pozostałe przypadki.

case 10
in 1 then puts 'one'
else
  puts 'no specific match'
end

Dopasowywanie w jednym wierszu

Operator => wykonuje jednowierszowe przypisanie w prawo z dopasowaniem i zgłasza wyjątek, jeśli dopasowanie się nie powiedzie. Operator in zwraca natomiast wartość true/false.

result = [1, 2] in [Integer, Integer]
puts result

Szybkie sprawdzenie

Co się stanie, jeśli case/in nie ma pasującej gałęzi ani else?

Podsumowanie: podstawy case/in

Znają już Państwo podstawy dopasowywania strukturalnego:

  • case/in dopasowuje kształt, a nie tylko równość
  • Literały, wzorce typów i symbol wieloznaczny _
  • Wiązanie zmiennych i operator przypięcia ^
  • Alternatywy za pomocą | oraz pattern => name
  • Brak dopasowania powoduje zgłoszenie NoMatchingPatternError
case 7
in Integer => n then puts(n * 2)
end

Często zadawane pytania

Czy lekcja „Podstawy case/in” jest bezpłatna?

Tak — pełny tekst „Podstawy case/in” 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 „Podstawy case/in”?

Dopasowywanie strukturalne Ć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 1 z 4.

Ile czasu zajmuje lekcja „Podstawy case/in”?

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