← StartseiteProgrammierung (Програмування)

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

Warum gibt der Ruby-Code nil zurück, nachdem puts ausgeführt wurde? Warum erhalten wir => nil nach dem gedruckten Text?

Dieser Inhalt wurde automatisch aus dem Ukrainischen übersetzt.
In Ruby gibt die Methode puts immer nil zurück, nachdem sie eine Zeichenkette auf dem Bildschirm ausgegeben hat. Dies ist das Standardverhalten von puts, da ihr Hauptzweck darin besteht, Text auszugeben und nicht einen Wert zurückzugeben. Mit anderen Worten, puts ist eine Methode, die für die Ausgabe bestimmt ist, und ihre Nebenwirkung (die Textausgabe) ist wichtiger als der zurückgegebene Wert.
result = puts "Hallo, Welt!"
Hallo, Welt!
=> nil
Wenn Sie den Code "puts 'Hallo, Welt!'" ausführen, gibt irb "Hallo, Welt!" auf dem Bildschirm aus und gibt nil zurück. Daher wird die Variable result den Wert nil haben.
result
=> nil
Warum ist das so?
Die Methode puts ist dafür gedacht, Daten in den Standardausgabestrom (normalerweise die Konsole) auszugeben. Das Zurückgeben eines Wertes ist nicht ihre Hauptfunktion. Daher gibt puts aus Gründen der Bequemlichkeit und Konsistenz immer nil zurück. Das sollte man sich einfach merken.
Viele Methoden in Ruby, die Nebenwirkungen haben (zum Beispiel die Ausgabe auf dem Bildschirm oder die Modifikation eines Objekts), geben nil oder das Objekt zurück, auf dem sie aufgerufen werden. Das macht ihr Verhalten vorhersehbar und ermöglicht es, leicht zu verstehen, dass die Hauptaktion der Methode als Nebenwirkung und nicht durch den zurückgegebenen Wert stattgefunden hat.
Beispiel mit der Methode:
def say_hello
  puts "Hallo!"
end

result = say_hello

result
=> nil
Dasselbe gilt für bedingte Ausdrücke. In Ruby gibt jeder Ausdruck einen Wert zurück. Wenn Sie Code ausführen, der bedingte Operatoren oder Methoden enthält, gibt Ruby immer das Ergebnis des letzten ausgeführten Ausdrucks zurück. Im folgenden Beispiel erhalten Sie => nil, weil der letzte Ausdruck im Code der bedingte Operator if ist, der den Wert des letzten ausgeführten Blocks zurückgibt.
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
Schauen wir uns das genauer an.
value = false
if value
  puts "Dieser Code wird nicht ausgeführt"
else
  puts "Die Variable value ist false"
end
In diesem Code hat die Variable value den Wert false. Der if-Operator überprüft den Wert von value. Da value false ist, führt Ruby den Codeblock innerhalb von else aus.
puts "Die Variable value ist false"
Die Methode puts gibt die Zeichenkette "Die Variable value ist false" aus und gibt nil zurück, da puts immer nil zurückgibt, nachdem sie eine Zeichenkette auf dem Bildschirm ausgegeben hat. Daher ist das Ergebnis der Ausführung des else-Blocks nil.
Folglich gibt der bedingte Operator if, wenn er die Ausführung beendet, den Wert des letzten ausgeführten Ausdrucks zurück, der das Ergebnis von puts ist, also nil.
Deshalb sehen Sie:
Die Variable value ist false
=> nil
Ich hoffe, wir haben dieses Thema geklärt ^_^

🔥 Weitere Beiträge

Alle Beiträge
Was bedeutet "Nativ"?
Fristen (Терміни)22. Mai '24, 07:01 Uhr

Was bedeutet "Nativ"?

Was ist nativ? Erfahren Sie die Bedeutung des Begriffs "nativ" mit Beispielen aus verschiedenen L...

Was sind Immutabilität und Mutabilität?
Programmierung (Програмування)19. Jun '24, 07:48 Uhr

Was sind Immutabilität und Mutabilität?

Was sind Immutabilität und Mutabilität? Beschreibung des Begriffs im Kontext der Programmierung u...