2

「自己クラス」を呼び出す主な理由は 2 つあります。静的メソッドの呼び出し、新しいオブジェクトの作成、定数の取得など、ユーザー空間の処理を行うためです。または自分自身を振り返るために。それぞれがどのくらいの頻度で発生するか知りたいです。

現在ロードされている Pharo コード ベースを照会する最良の方法は何ですか? 組み込みツールはありますか、それとも SOUL を使用する必要がありますか?

4

3 に答える 3

3

ブラウザを開き、オブジェクトに移動し、#class を選択して「senders」をクリックすると、#class のすべての送信者が表示されます。ただし、「それぞれがどのくらいの頻度で発生するか」という回答には適していません。

より操作しやすい形式で同じ呼び出しサイトを取得する方法はObject allCallsOn: #class、送信者のコレクションを与える方法です。おそらく、#select: 呼び出しを実行して、いくつかの番号を見つけますか?

または、Refactoring Browser を使用します。AST 構造に基づいて検索するための FinderTool などがあります。

編集: mathk が指摘するように、特別なメッセージやインライン メッセージが原因で、senders-of が機能しないことがあります。このトピックに関する vm-dev リストで興味深い議論があります。

于 2010-10-01T21:05:05.460 に答える
2

システム内の任意のクラス/オブジェクトをイントロスペクトするのに役立つ組み込みツールは、システム ブラウザー、インスペクター、およびオブジェクト エクスプローラーです。Squeak by Exampleの「Squeak での開発」の章を参照してください。そこにある情報は、Pharo に関連しています。

于 2010-09-29T10:35:24.943 に答える
2

smalltalk には static メソッドのようなものはありません。クラスが何であるかを理解していないことを理解していない場合。

于 2010-10-11T21:35:47.877 に答える