Prawdziwość w Ruby
nil i false
Prawdziwość w Ruby to bezpłatna lekcja Ruby Academy na CoddyKit. To lekcja 3 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.
Czym jest truthiness
W warunku Ruby nie wymaga ścisłej wartości logicznej. Każda wartość jest traktowana jako truthy albo falsy. Znajomość tej zasady zapobiega trudnym do wykrycia błędom.
if "hello"
puts "Strings are truthy"
endTylko dwie wartości falsy
Zasada Ruby jest wyjątkowo prosta: tylko false i nil mają wartość falsy. Wszystko inne ma wartość truthy.
puts "nil is falsy" unless nil
puts "false is falsy" unless falseZero jest truthy
W przeciwieństwie do wielu języków 0 ma w Ruby wartość truthy. To samo dotyczy pustego napisu i pustej tablicy. Uważaj, jeśli znasz język C lub Python.
if 0
puts "0 is truthy in Ruby"
end
if ""
puts "empty string is truthy too"
endPoznaj nil
nil oznacza brak wartości. Metody często zwracają nil, gdy nie mają czego zwrócić, na przykład gdy brakuje klucza w hashu.
user = { name: "Ada" }
puts user[:email].inspect # missing key returns nilSprawdzanie nil
Użyj nil?, aby jawnie wykonać sprawdzenie. Zwraca ono true tylko dla nil.
x = nil
y = 0
puts x.nil?
puts y.nil?Operator &&
&& zwraca pierwszy operand falsy albo ostatni operand, jeśli wszystkie mają wartość truthy. Stosuje ewaluację zwarciową: prawa strona nie jest obliczana, jeśli lewa ma wartość falsy.
puts (nil && "never").inspect
puts ("a" && "b").inspectOperator ||
|| zwraca pierwszy operand truthy. Dzięki temu doskonale nadaje się do ustawiania wartości domyślnych.
name = nil
display = name || "Guest"
puts displayPrzypisanie warunkowe ||=
a ||= b przypisuje b do a tylko wtedy, gdy a ma obecnie wartość nil lub false. To idiomatyczny sposób ustawiania wartości domyślnej.
config = {}
config[:timeout] ||= 30
config[:timeout] ||= 99 # already set, ignored
puts config[:timeout]Uwaga na wartość domyślną falsy
Ponieważ false ma wartość falsy, || może nadpisać prawidłową wartość false. Gdy false ma znaczenie, zamiast tego sprawdzaj nil?.
enabled = false
result = enabled || true # oops, becomes true
puts result
safe = enabled.nil? ? true : enabled
puts safeOperator bezpiecznej nawigacji
&. wywołuje metodę tylko wtedy, gdy odbiorca nie ma wartości nil; w przeciwnym razie zwraca nil zamiast zgłaszać błąd.
name = nil
puts name&.upcase.inspect # no NoMethodError
name = "ruby"
puts name&.upcasePołączenie wszystkiego
Zasady truthiness pozwalają pisać wyrazisty, zwięzły kod, ale pamiętaj o przypadkach szczególnych:
- Tylko
nilifalsemają wartość falsy. 0,""i[]mają wartość truthy.- Używaj
nil?, gdy rzeczywista wartośćfalsema znaczenie.
values = [0, "", [], nil, false]
values.each do |v|
puts "#{v.inspect} => #{v ? "truthy" : "falsy"}"
endSzybki test
Sprawdź swoją znajomość truthiness w Ruby.
Podsumowanie
Poznałeś truthiness w Ruby:
- Tylko
nilifalsemają wartość falsy. nil?jawnie sprawdza, czy wartość to nil.&&i||zwracają operandy i stosują ewaluację zwarciową.||=ustawia wartości domyślne, a&.chroni przed odbiorcami o wartości nil.
username = nil
username ||= "anonymous"
puts "Welcome, #{username}"Często zadawane pytania
Czy lekcja „Prawdziwość w Ruby” jest bezpłatna?
Tak — pełny tekst „Prawdziwość w Ruby” 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 „Prawdziwość w Ruby”?
nil i false Ć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 3 z 4.
Ile czasu zajmuje lekcja „Prawdziwość w Ruby”?
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
- if, unless, ternary
- Wyrażenia case/when
- Prawdziwość w Ruby
- Klauzule ochronne