[英]Pharo big error?
我在pharo的smalltalk上課。 我在全局字典中創建一個小實例,
Smalltalk at:#asd put: myobject new.
然后我錯誤地將這段代碼寫入工作區。
Smalltalk at:asd put: myobject new.
這給了我錯誤,連續,當從鍵盤按一個鍵,我得到錯誤我的對象不明白,是這個byteArray,就像那樣。 我該如何解決這個問題? 或者如何重置全球字典?
好的,這是一個有趣的問題。
首先,我建議你不要做那樣的事情,因為全局變量通常用於存儲類中的類。
現在問題的原因是您不必在工作空間中聲明變量,它將為您使用的每個名稱創建一個新的戰爭。 默認情況下,new var為nil
,所以你所做的就是在字典中放一個nil
鍵
要刪除它,請執行以下操作:
Smalltalk globals removeKey: nil ifAbsent: [ ]
現在,如果你想擁有一個獨特的類實例,我建議你使用單例模式。 這意味着定義類實例變量(例如default
)和類方法:
default
^ default ifNil: [default := self new ].
這將在您第一次運行它時創建新實例,然后保留它並在以后隨時返回它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.