class MyClass
def instance_variable=(var)
puts "inside getter"
instance_variable = var
end
def function_1
self.instance_variable = "whatever"
end
def function_2
@instance_variable = "whatever"
end
end
myclass = MyClass.new
myclass.function1
室內用結果 「內吸」 在控制檯上我猜有些紅寶石內部構件
myclass.function2
沒有。
進出口新的紅寶石,不知道其中的差別,無法找到它在網絡上...
提前感謝!
編輯:
我假定通過附加「=」,我會覆蓋一個隱式定義的實例變量的吸氣劑的方法「instance_variable」。
這也是我爲什麼這樣稱呼它的原因。
我不習慣在函數名中使用「=」。
這就是爲什麼我認爲它會有一些特殊的含義。
感謝您的幫助。
EDIT2:
我只是想我真的覆蓋分配,不只是吸氣。我把這一切搞混了。
對不起,謝謝。
但是ruby並沒有爲你做這件事,除非你使用我在答案中顯示的attr_xxx語法。 – 2011-05-23 18:03:37
我想要的是一個實例變量。 沒有辦法明確地定義它,這就是爲什麼我調用方法本身「instance_variable =」。 我所假設的是,附加「=」符號使其成爲實例變量「instance_variable」的getter。就像覆蓋它一樣。 但現在我認爲,「=」不這樣做。 它只是一個字符?像「a-z」? – krzysiek 2011-05-23 18:08:08
@krzysiek:*「沒有辦法明確定義它」* - 我不確定你的意思。你當然可以定義一個實例變量,你只需聲明並初始化它,即'@some_instance_var = 1'。方法末尾的'='會使它成爲setter,而不是getter,它確實有意義。這意味着你可以像'my_property = 1'一樣使用它,即它看起來像分配一個字段,但實際上你正在調用'my_property =(value)'方法。 – 2011-05-23 19:22:48