Alle Originalinhalte werden auf Ukrainisch erstellt. Noch nicht alle Inhalte wurden übersetzt. Einige Beiträge sind möglicherweise nur auf Ukrainisch verfügbar.Mehr erfahren

Was ist der Unterschied zwischen nil und false in Ruby?

Beitrags-Cover: Was ist der Unterschied zwischen nil und false in Ruby?
InhaltsverzeichnisKlicke auf den Link, um zur gewünschten Stelle zu navigieren
Dieser Inhalt wurde automatisch aus dem Ukrainischen übersetzt.
In Ruby werden sowohl nil als auch false verwendet, um das Konzept von "nichts" oder "Falschheit" darzustellen, aber sie haben unterschiedliche Rollen und Verhaltensweisen. Das Verständnis der Unterschiede zwischen ihnen ist wichtig für das Schreiben von verständlichem und effektivem Ruby-Code.

Merkmale des nil-Wertes

  • Typ: nil ist eine Instanz der Klasse NilClass.
  • Wert: Stellt das Fehlen eines Wertes oder "nichts" dar. Es wird häufig verwendet, um anzuzeigen, dass einer Variablen kein Wert zugewiesen wurde oder dass eine Methode kein Ergebnis zurückgegeben hat.
  • Wahrhaftigkeit: nil wird in bedingten Ausdrücken als "falsch" angesehen. Das bedeutet, dass nil in einer if-Anweisung als falscher Wert interpretiert wird.
Zum Beispiel:
value = nil
if value
  puts "Dieser Code wird nicht ausgeführt"
else
  puts "Die Variable value ist nil"
end
Ergebnis:
Die Variable value ist nil
=> nil

Merkmale des false-Wertes

Typ: false ist eine Instanz der Klasse FalseClass.
Wert: Stellt einen logischen falschen Wert dar. Wird in logischen Operationen verwendet, um anzuzeigen, dass eine Bedingung falsch ist.
Wahrhaftigkeit: false wird in bedingten Ausdrücken als "falsch" angesehen. Das bedeutet, dass false in einer if-Anweisung als falscher Wert interpretiert wird.
Zum Beispiel:
value = false
if value
  puts "Dieser Code wird nicht ausgeführt"
else
  puts "Die Variable value ist false"
end
Ergebnis:
Die Variable value ist false
=> nil
Warum sehen wir nil nach dem gedruckten Text? Lesen Sie im Beitrag - Warum gibt Ruby nil nach der Ausführung von puts zurück?
Der Hauptunterschied zwischen nil und false liegt in ihrer Bedeutung und Verwendung. nil bedeutet das Fehlen eines Wertes oder "nichts", während false logische Falschheit bedeutet. Beide Werte werden in bedingten Ausdrücken als falsch angesehen, aber ihre Bedeutung und Verwendung unterscheiden sich. Dies ermöglicht es, Situationen zu unterscheiden, in denen eine Variable keinen Wert hat (nil) und in denen eine Bedingung logisch falsch ist (false).
Das heißt, nil wird verwendet, um Leere zu beschreiben. False wird verwendet, um Falschheit zu kennzeichnen.
  • Wenn wir ein falsches Ergebnis der Validierung is_valid? zurückgeben müssen, sollten wir false zurückgeben.
  • Wenn wir einen Wert löschen müssen - verwenden wir nil.
  • In einem bedingten Ausdruck geben sowohl nil als auch false ein falsches Ergebnis zurück.
Überprüfen wir:
def check_value(value)
  if value
    puts "Der Wert ist wahr"
  else
    puts "Der Wert ist falsch (nil oder false)"  # Dies wird für nil und false ausgegeben
  end
end

check_value(nil)    # Gibt aus: Der Wert ist falsch (nil oder false)
check_value(false)  # Gibt aus: Der Wert ist falsch (nil oder false)
check_value(true)   # Gibt aus: Der Wert ist wahr
check_value(1)      # Gibt aus: Der Wert ist wahr
check_value("Hello")# Gibt aus: Der Wert ist wahr
In der Beschreibung der Werte haben wir NilClass und FalseClass erwähnt. Ich persönlich habe noch nie gesehen, dass diese Klassen bei der Arbeit mit Ruby berührt werden, aber lassen Sie uns sie aus rein akademischen Gründen betrachten.

FalseClass

FalseClass ist eine eingebaute Klasse in Ruby, die logische Falschheit darstellt. In Ruby werden nur zwei Werte in bedingten Ausdrücken als falsch angesehen: false und nil. Hier sind einige wichtige Punkte:
  • In Ruby ist false die einzige Instanz der Klasse FalseClass. Das bedeutet, dass alle Variablen, die den Wert false haben, auf dasselbe Objekt verweisen. Über immediate values haben wir bereits ausführlicher hier geschrieben.
  • Der Wert false wird häufig in logischen Operationen und bedingten Ausdrücken verwendet, um eine falsche Bedingung anzuzeigen.
  • Die Klasse FalseClass hat mehrere Methoden, darunter die häufigsten &, | und ^ zur Durchführung logischer Operationen.
FalseClass Instance methods: &, ===, ^, inspect, to_s, |
FalseClass Instance methods: &, ===, ^, inspect, to_s, |
Beispiel für die Interaktion mit FalseClass
is_valid = false

puts is_valid.class # => FalseClass

# Verwendung in einem bedingten Ausdruck
if is_valid
  puts "Dieser Code wird nicht ausgeführt"
else
  puts "is_valid ist false" # Dies wird ausgegeben
end

# Logische Operationen
puts false & true  # => false
puts false | true  # => true
puts false ^ true  # => true
Also speichert FalseClass den Wert false und hat auch Methoden zur Durchführung logischer Operationen.

NilClass

NilClass ist ebenfalls eine eingebaute Klasse in Ruby, die das Fehlen eines Wertes oder "nichts" darstellt.
  •  In Ruby ist nil die einzige Instanz der Klasse NilClass. Das bedeutet, dass alle Variablen, die den Wert nil haben, auf dasselbe Objekt verweisen.
  •  Der Wert nil wird häufig verwendet, um das Fehlen eines Wertes oder einen undefinierten Zustand anzuzeigen.
  • Die Klasse NilClass hat mehrere Methoden, einschließlich nil?, die immer true für das Objekt nil zurückgibt, sowie Methoden zur Umwandlung in andere Typen (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, |
    NilClass Instance methods: &, ===, =~, ^, inspect, nil?, rationalize, to_a, to_c, to_d, to_f, to_h, to_i, to_r, to_s, |
Beispiel für die Interaktion mit NilClass
value = nil

puts value.class # => NilClass

# Verwendung in einem bedingten Ausdruck
if value
  puts "Dieser Code wird nicht ausgeführt"
else
  puts "value ist nil" # Dies wird ausgegeben
end

# Methoden der Klasse NilClass
puts nil.nil?  # => true
puts nil.to_s  # => ""
puts nil.to_i  # => 0
puts nil.to_f  # => 0.0
NilClass ist notwendig, um mit dem Wert nil zu arbeiten (ähnlich wie bei FalseClass).

Dieser Beitrag hat noch keine Ergänzungen vom Autor.

Wie funktioniert 'rails console --sandbox'?
23. Mai, 19:39 Uhr

Wie funktioniert 'rails console --sandbox'?

meme code
meme code@memecode
Wofür wird die CVE-Datenbank (Common Vulnerabilities and Exposures) benötigt?
29. Mai, 08:05 Uhr

Wofür wird die CVE-Datenbank (Common Vulnerabilities and Exposures) benötigt?

meme code
meme code@memecode
29. Mai, 09:09 Uhr

Welche Betriebssysteme unterstützen Ruby?

meme code
meme code@memecode
Erstellt Ruby eine neue Kopie des Objekts, wenn eine Variable einer anderen Variable zugewiesen wird?
29. Mai, 09:30 Uhr

Erstellt Ruby eine neue Kopie des Objekts, wenn eine Variable einer anderen Variable zugewiesen wird?

meme code
meme code@memecode
Was ist der Unterschied zwischen immediate value und reference in Ruby?
29. Mai, 12:00 Uhr

Was ist der Unterschied zwischen immediate value und reference in Ruby?

meme code
meme code@memecode
Warum gibt der Ruby-Code nil zurück, nachdem puts ausgeführt wurde?
29. Mai, 20:30 Uhr

Warum gibt der Ruby-Code nil zurück, nachdem puts ausgeführt wurde?

meme code
meme code@memecode
Warum ist eine leere Zeichenkette (string) in Ruby nicht false?
31. Mai, 14:39 Uhr

Warum ist eine leere Zeichenkette (string) in Ruby nicht false?

meme code
meme code@memecode
Sichtbarkeit des lokalen Variablenbereichs in Ruby
03. Jun, 16:46 Uhr

Sichtbarkeit des lokalen Variablenbereichs in Ruby

meme code
meme code@memecode
Was ist der Unterschied zwischen int und bigint in Ruby? Minimale und maximale Werte.
13. Jun, 06:37 Uhr

Was ist der Unterschied zwischen int und bigint in Ruby? Minimale und maximale Werte.

meme code
meme code@memecode
Was bedeutet der Fehler 'is out of range' in Ruby on Rails? Bereichsfehler - Ganzzahl mit einer Begrenzung von 4 Bytes
13. Jun, 07:18 Uhr

Was bedeutet der Fehler 'is out of range' in Ruby on Rails? Bereichsfehler - Ganzzahl mit einer Begrenzung von 4 Bytes

meme code
meme code@memecode
Was sind Immutabilität und Mutabilität?
19. Jun, 07:48 Uhr

Was sind Immutabilität und Mutabilität?

meme code
meme code@memecode
[Ruby] Was ergibt die Addition von 10,5 und 10?
23. Jun, 13:23 Uhr

[Ruby] Was ergibt die Addition von 10,5 und 10?

meme code
meme code@memecode