大部分吱吱聲是使用吱吱聲本身實現的。我很想知道僞變量,如self
或true
是否也使用吱吱聲來實現。如果答案是肯定的,那麼實施的地點在哪裏?在吱吱聲中創建新的僞變量
具體來說,假設我想添加一個名爲「其他」的「布爾」的新子類,它將代表第三個選項:既不是真也不是假。我想other
,Other
的唯一實例類似於真/假全球單身人士。
任何想法? 謝謝。
大部分吱吱聲是使用吱吱聲本身實現的。我很想知道僞變量,如self
或true
是否也使用吱吱聲來實現。如果答案是肯定的,那麼實施的地點在哪裏?在吱吱聲中創建新的僞變量
具體來說,假設我想添加一個名爲「其他」的「布爾」的新子類,它將代表第三個選項:既不是真也不是假。我想other
,Other
的唯一實例類似於真/假全球單身人士。
任何想法? 謝謝。
使它成爲一個全球性的:
Smalltalk at: #other put: Other new
因爲布爾覆蓋新引發錯誤
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).