2010-05-18 71 views
2

大部分吱吱聲是使用吱吱聲本身實現的。我很想知道僞變量,如selftrue是否也使用吱吱聲來實現。如果答案是肯定的,那麼實施的地點在哪裏?在吱吱聲中創建新的僞變量

具體來說,假設我想添加一個名爲「其他」的「布爾」的新子類,它將代表第三個選項:既不是真也不是假。我想otherOther的唯一實例類似於真/假全球單身人士。

任何想法? 謝謝。

回答

4

使它成爲一個全球性的:

Smalltalk at: #other put: Other new 
1

因爲布爾覆蓋新引發錯誤

new 
    self error: 'You may not create any more Booleans - this is two-valued logic' 

如果您嘗試布爾子以前的答案不會沒有進一步修改的工作,你的Smalltalk圖像:#其他,然後嘗試將其他關鍵字添加到上面的Smalltalk全局變量中,您將引發錯誤。

您可以刪除布爾>> new,實現您的Other類,將其添加到您的Smalltalk全局變量中,然後替換Boolean >> new。

接下來,你可能會考慮更新ClassBuilder> reservedNames保護您的新布爾

reservedNames 
"Return a list of names that must not be used for variables" 
    ^#('self' 'super' 'thisContext' 'true' 'false' 'nil' 
    self super thisContext #true #false #nil). 
相關問題