我想知道我是否正確地實現了Ruby對象的重新初始化。重新初始化一個Ruby對象
我有一個叫Clipboard
的類來保存文件夾和文件。當創建一個新的剪貼板對象時,它總是空的:它上面沒有文件夾或文件。我也有一個reset
方法,它清除剪貼板中的所有文件夾和文件。
起初,我的代碼看起來很喜歡這個:
class Clipboard
def initialize
@folders = []
@files = []
end
def reset
@folders = []
@files = []
end
end
但事實上,reset
和initialize
是完全一樣的讓我生氣。除了重新設置剪貼板對象與重新初始化它相同之外。所以我改變了我的代碼:
class Clipboard
def initialize
@folders = []
@files = []
end
def reset
initialize
end
end
這工作,但我想知道如果是打算約我重新初始化對象的正確方法是什麼?有什麼理由不應該從實例方法調用initialize
?謝謝!
我基本上都是給出的答案;而不是針對他們,但是如果我按照上面建議的方法行事,我會更進一步,並且'別名重設初始化',甚至直接調用'初始化'而不是重置。準確地說,答案中的措詞,'initialize'不是一個構造函數。它是一個由構造函數調用的實例方法。 – sawa 2011-04-21 03:44:39
感謝您澄清更多。 – Mischa 2011-04-21 04:19:06