Ich habe eine Methode und eine lokale Variable mit dem gleichen Namen x
:Wie Vorrang ein Verfahren über eine lokale Variable geben
class A
def x; 5 end
end
x = 10
Ich mag x
auf das Verfahren beziehen, ohne self.x
zu verwenden. Zum Beispiel möchte ich:
A.new.instance_eval{x} # => 10
5
zurückzukehren. Ist das möglich?
'x' ist eine * lokale * Variable. [Globale Variablen] (http://ruby-doc.org/core-2.3.0/doc/syntax/assignment_rdoc.html#label-Global+Variables) beginnen mit einem '$'. – Stefan
Oh, ich hatte eine Variable im Body des Programms zugewiesen war global, wusste nicht, dass es eine tatsächliche globale Variable Modifikator – Coirotomas
self.x ist wahrscheinlich die sauberste und klarste Art und Weise auszudrücken, dass Sie die Methode aufrufen. Warum willst du es anders ausdrücken? –