5

私はSmalltalkの初心者で、現在Pharoで遊んでいますが、サブクラスメッセージの選択に興味があります。キーワードinstanceVariableNamesは、subStringsメッセージに応答できるものを求めています。必要なのはシンボルのコレクションなので、なぜ配列のようなより構造化されたものを期待しないのだろうか。

Object subclass: #Experiment instanceVariableNames: #(#foo #bar).

これについての私の唯一の推測は、いくつかの歴史的な理由です。おそらく、すべてのSmalltalkに配列があるわけではないか、それらの構文がサブクラスとして内部メッセージに組み込まれるほど大きく異なります。他に説明はありますか?

4

2 に答える 2

3

Pharoビジョンドキュメントでは、ポイントの1つはそれを変更し、インスタンス変数の実際の概念を持つことです。興味がある場合は、次のリンクを確認してください。

于 2013-03-25T12:30:43.757 に答える
2

はい、それは少し奇妙です。その主な理由は名前が必要なためだと思います。クラスを作成すると、コンパイラは文字列を解析して名前をサブ文字列として取得します。また、誰かが数字や別の配列を含む配列を渡したかどうかを確認する必要もありません。

アレイ自体に関しては、Smalltalk-80仕様に存在していたため、非常に一般的です。{ expr1 . expr2 . expr3}( Squeakで導入された動的配列としてではありません。

また、奇妙なことがたくさんあります。たとえば、現在、PharoはScannerのサブクラスであるParserを使用しています…まもなく変更される予定です。

于 2013-03-25T07:15:29.790 に答える