というメソッドを定義しようとしていますfunction
。これを行うと機能します:
a = A.new
def a.function
puts 100
end
しかし、私はメソッドがだけでなく、任意のインスタンス変数に対して機能することを望んでいますa
。たとえば、以外function
のインスタンスを呼び出すと、何も起こりません。そのため、 ではなく関数を定義していました。A
a
A::f
a.function
class A
attr_accessor :function
attr_accessor :var
end
def A::function
self.var = 0x123
end
a = A.new
a.function
puts a.var
これは正常にコンパイルされますが、関数を呼び出そうとするとエラーが発生します。なぜ機能しないのですか?どうすれば私が試みていることを実行できますか?