Mögliche Duplizieren:
Why is `a = a` `nil` in Ruby?Warum x = x keinen Fehler erhöhen, auch wenn x
Ich bin sicher, dass es einen Grund, ich bin für dieses Verhalten ist nur neugierig was es ist.
Mögliche Duplizieren:
Why is `a = a` `nil` in Ruby?Warum x = x keinen Fehler erhöhen, auch wenn x
Ich bin sicher, dass es einen Grund, ich bin für dieses Verhalten ist nur neugierig was es ist.
Dies wird durch die Art verursacht, wie die Variablen in Ruby initialisiert werden, was für diese Sprache ziemlich einzigartig ist. Ruby initialisiert (erzeugt) grundsätzlich eine Variable, wenn ihr möglicherweise ein Wert zugewiesen wird. Betrachten Sie folgendes Beispiel:
if false
x = "hello"
end
x
wird auf jeden Fall nicht die hier "hello"
Zeichenfolge zugewiesen bekommen. Es wird jedoch immer noch mit nil
initialisiert, da es aus der statischen Programmanalyse hätte zugewiesen werden können.
Ihr Beispiel ist ähnlich. Da Sie x
etwas zuweisen, wird es initialisiert mit nil
, bevor die Anweisung ausgeführt wird. Somit ist während der Ausführung x
tatsächlich nil
.
Siehe: http://stackoverflow.com/questions/8908050/why-is-a-a-nil-in-ruby –
Vielen Dank, tut mir leid, das Duplikat konnte ich nicht finden. – mechanicalfish