簡體   English   中英

Pharo大錯誤?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM