有時候,我看到這樣的代碼Ruby - 爲什麼要將參數分配給實例變量?
class Thing
def self.add_em(a,b)
a+b
end
end
,有時我看到
class Thing
def self.add_em(a,b)
@a=a
@b=b
@[email protected]
end
end
當/我爲什麼要使用@
實例變量,而不是僅僅使用參數傳遞的?
我相信一個原因是,如果你想在任何其他方法中使用這些變量,那麼實例變量將是可用的,本地,基於參數的變量不會。不過,我經常看到@變量被使用,即使變量沒有被其他方法使用。
所以我看到的 @一個模式=一個 @ B = 在中傳遞的所有參數方法開始被使用了很多,但我不清楚到底爲什麼,如果他們在那些剛剛使用方法。如果它們用於其他方法,它只是一個約定嗎?
你知道你寫的答案是正確的。但這取決於你如何在你的代碼庫中使用OOP設計。 –
我遇到了這個問題,因爲我回答了另一個關於你的問題,關閉,刪除,未刪除。這一個也是完全合理的,而且「幾乎完全基於意見」。無論如何,我同意你收到的答案。我只補充說,我大多在'initialize'方法中看到了@ a = a @ b = b模式,你幾乎總是想保存參數供以後使用。 –