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 ^_^
Dieser Beitrag hat noch keine Ergänzungen vom Autor.