50 Stimmen

Ich verstehe den lokalen Bereich von Ruby nicht

In diesem Beispiel,

def foo(x)
  if(x > 5)
    bar = 100
  end
  puts bar
end

Dann foo(6) Gibt aus: 100 und foo(3) gibt nichts aus.

Wenn ich jedoch die Definition ändere in

def foo(x)
  if(x > 5)
    bar = 100
  end
  puts bob
end

Ich erhalte eine Fehlermeldung "undefinierte lokale Variable oder Methode".

Meine Frage ist also, warum ich diesen Fehler nicht bekomme, wenn ich foo(3) aufrufe und bar nie gesetzt wird?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X