Spis treściKliknij link, aby przejść do wybranego miejsca
Ta treść została automatycznie przetłumaczona z ukraińskiego.
W Ruby zarówno nil, jak i false są używane do reprezentacji koncepcji "nic" lub "fałszu", ale mają różne role i zachowanie. Zrozumienie różnic między nimi jest ważne dla pisania zrozumiałego i efektywnego kodu Ruby.
Charakterystyka wartości nil
- Typ: nil jest instancją klasy NilClass.
- Wartość: Reprezentuje brak wartości lub "nic". Często jest używane do oznaczenia, że zmiennej nie przypisano żadnej wartości lub że metoda nie zwróciła żadnego wyniku.
- Prawdziwość: nil jest uważane za "fałszywe" w wyrażeniach warunkowych. Oznacza to, że w operatorze if nil będzie traktowane jako fałszywa wartość.
Na przykład:
value = nil if value puts "Ten kod nie zostanie wykonany" else puts "Zmienna value jest nil" end
Wynik:
Zmienna value jest nil => nil
Charakterystyka wartości false
Typ: false jest instancją klasy FalseClass.
Wartość: Reprezentuje logiczną wartość fałszywą. Używane w operacjach logicznych do oznaczenia, że warunek jest fałszywy.
Prawdziwość: false jest uważane za "fałszywe" w wyrażeniach warunkowych. Oznacza to, że w operatorze if false będzie traktowane jako fałszywa wartość.Na przykład:
value = false if value puts "Ten kod nie zostanie wykonany" else puts "Zmienna value jest false" end
Wynik:
Zmienna value jest false => nil
Dlaczego widzimy nil po wydrukowanym tekście? Czytaj w poście - Dlaczego kod Ruby zwraca nil po wykonaniu puts?
Główna różnica między nil a false polega na ich znaczeniu i użyciu. nil oznacza brak wartości lub "nic", podczas gdy false oznacza logiczną fałszywość. Obie wartości są uważane za fałszywe w wyrażeniach warunkowych, ale ich sens i użycie się różnią. Umożliwia to rozróżnienie sytuacji, gdy zmienna nie ma wartości (nil) i gdy warunek jest logicznie fałszywy (false).
To znaczy, że nil - jest używane do opisu pustki. False - do oznaczenia fałszywości.
- Jeśli musimy zwrócić fałszywy wynik walidacji is_valid?, powinniśmy zwrócić false.
- Jeśli musimy wyczyścić wartość - używamy nil.
- A w wyrażeniu warunkowym nil i false obie dają fałszywy wynik.
Sprawdźmy:
def check_value(value)
if value
puts "Wartość jest prawdziwa"
else
puts "Wartość jest fałszywa (nil lub false)" # To zostanie wydrukowane dla nil i false
end
end
check_value(nil) # Wydrukuje: Wartość jest fałszywa (nil lub false)
check_value(false) # Wydrukuje: Wartość jest fałszywa (nil lub false)
check_value(true) # Wydrukuje: Wartość jest prawdziwa
check_value(1) # Wydrukuje: Wartość jest prawdziwa
check_value("Hello")# Wydrukuje: Wartość jest prawdziwa
W charakterystyce wartości wspomnieliśmy o NilClass i FalseClass. Osobiście nigdy nie widziałem, aby te klasy były używane w pracy z Ruby, ale przyjrzyjmy się im w czysto akademickich celach.
FalseClass
FalseClass jest wbudowaną klasą w Ruby, która reprezentuje logiczną fałszywość. W Ruby tylko dwie wartości są uważane za fałszywe w wyrażeniach warunkowych: false i nil. Oto kilka kluczowych punktów:
- W Ruby, false jest jedyną instancją klasy FalseClass. Oznacza to, że wszystkie zmienne, które mają wartość false, odnoszą się do tego samego obiektu. O immediate values więcej szczegółów można znaleźć tutaj.
- Wartość false często jest używana w operacjach logicznych i wyrażeniach warunkowych do oznaczenia fałszywego warunku.
- Klasę FalseClass ma kilka metod, z których najczęściej używane to &, |, i ^ do wykonywania operacji logicznych.
is_valid = false puts is_valid.class # => FalseClass # Użycie w wyrażeniu warunkowym if is_valid puts "Ten kod nie zostanie wykonany" else puts "is_valid jest false" # To zostanie wydrukowane end # Operacje logiczne puts false & true # => false puts false | true # => true puts false ^ true # => true
Tak więc FalseClass przechowuje wartość false, a także ma metody do wykonywania operacji logicznych.
NilClass
NilClass jest również wbudowaną klasą w Ruby, która reprezentuje brak wartości lub "nic".
- W Ruby, nil jest jedyną instancją klasy NilClass. Oznacza to, że wszystkie zmienne, które mają wartość nil, odnoszą się do tego samego obiektu.
- Wartość nil często jest używana do oznaczenia braku wartości lub nieokreślonego stanu.
- Klasę NilClass ma kilka metod, w tym nil?, która zawsze zwraca true dla obiektu nil, a także metody do konwersji na inne typy (to_s, to_i, to_f).
NilClass Instance methods: &, ===, =~, ^, inspect, nil?, rationalize, to_a, to_c, to_d, to_f, to_h, to_i, to_r, to_s, |
Przykład interakcji z NilClass
value = nil puts value.class # => NilClass # Użycie w wyrażeniu warunkowym if value puts "Ten kod nie zostanie wykonany" else puts "value jest nil" # To zostanie wydrukowane end # Metody klasy NilClass puts nil.nil? # => true puts nil.to_s # => "" puts nil.to_i # => 0 puts nil.to_f # => 0.0
NilClass jest potrzebny do pracy z wartością nil (analogicznie do FalseClass).
Ten post nie ma jeszcze żadnych dodatków od autora.