2013-02-01 33 views
5

在smalltalk中存在「工作空間」環境。按照定義,「self」指向當前方法正在執行的對象。但是,當我在工作區窗口內輸入代碼片段時,我怎麼才能理解「當前方法」?目前沒有運行任何方法的對象,或者我錯過了某些東西。任何人都可以提供幫助嗎?在尋找「自我」的含義

+0

如果我在工作區窗口中鍵入一些文本並選擇它,我猜Pharo會將它放入一段代碼中。當我點擊「print-it」時,它會發送「value」消息給這個片段。現在,「自我」在代碼塊中,我們不知道該塊將被執行哪個對象的方法。 – Sharphawk

回答

8

你可以調試你執行的代碼,你會看到你最終執行一個對象的臨時方法。例如,在Pharo中,工作空間DoIts在UndefinedObject(nil)上創建一個方法。所以這裏自我指的是零。

4

試試這個實驗:在工作區中鍵入'self',選擇它並從上下文菜單中選擇「打印它」。這會告訴你什麼對象是自己綁定的。

在大多數Smalltalks中,自我將是零。