一般來說,創建一個實例變量的最佳做法和優缺點是可以從多個方法訪問或創建一個實例變量,該實例變量只是作爲參數傳遞給這些方法。在功能上它們是等價的,因爲方法仍然能夠使用變量來完成工作。雖然我可以看到一個好處,如果你正在更新變量,並希望返回更新的值,但在我的具體情況下,變量永遠不會更新,只能通過每種方法讀取以決定如何操作。哪個更好?創建一個實例變量或在Ruby中傳遞一個局部變量?
示例代碼是明確的:
class Test
@foo = "something"
def self.a
if @foo == "something"
puts "do #{@foo}"
end
end
a()
end
VS
class Test
foo = "something"
def self.a(foo)
if foo == "something"
puts "do #{foo}"
end
end
a(foo)
end
請注意:在類級別聲明`@foo =「something」`將使其成爲類對象的實例變量,而不是測試對象。至少,這對我來說是個棘手的問題。 – Jeremy 2010-11-23 00:18:06