5

smalltalkには、「ワークスペース」環境が存在します。定義上、「self」は現在のメソッドが実行されているオブジェクトを指します。しかし、ワークスペースウィンドウ内にコードスニペットを入力するときに「現在のメソッド」を理解するにはどうすればよいですか?メソッドを実行している現在のオブジェクトがないか、何かを逃しました。誰か助けてくれますか?

4

2 に答える 2

8

実行するコードをデバッグすると、オブジェクトに対して一時的なメソッドを実行することになります。たとえば、Pharoでは、ワークスペースDoItsがUndefinedObject(nil)にメソッドを作成します。したがって、ここで自己はnilを指します。

于 2013-02-01T18:38:32.690 に答える
4

この実験を試してください: ワークスペースに 'self' と入力して選択し、コンテキスト メニューから [印刷] を選択します。これにより、 self がバインドされているオブジェクトが表示されます。

ほとんどの Smalltalk では、self は nil になります。

于 2013-02-01T20:33:57.477 に答える