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'
endcase/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}"
endDopasowywanie 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'
endWzorce 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)
endSymbol 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'
endOperator 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'
endWzorce 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'
endWią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)
endNoMatchingPatternError
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'
endDopasowywanie 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 resultSzybkie 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/indopasowuje 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ą
|orazpattern => name - Brak dopasowania powoduje zgłoszenie
NoMatchingPatternError
case 7
in Integer => n then puts(n * 2)
endCzę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.