2012-10-29 14 views

Antwort

6

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.

Verwandte Themen