3

ポータブルな方法で Smalltalk でシンボルを使用するための「ベストプラクティス」ルールは何ですか? 私は主に squeak と pharo を使用していますが、他の Smalltalk では許可されていないのに、両方とも 'foo' = #foo と #foo = 'foo' を許可していることを知っています。シンボルは識別用であり、文字列の代わりに使用すべきではないことを理解しています。しかし、シンボル オブジェクトが、copyWith: や do: のようなメッセージを送信できるコレクションであると想定することは、少なくとも安全でしょうか? それとも、最初に何らかのコレクションに変換する必要がありますか?

アドバイスをいただければ幸いです。

4

1 に答える 1

6

Seaside で従う規則は、Symbols と Strings を混在させないことです。このようにして、問題を回避します。すべてのプラットフォームでシンボルが String のサブクラスであるとは限らないため、#copyWith: または #do: には注意する必要があります。

私はシンボルを他のシンボルと比較する安価なトークンとしてのみ使用します。それ以外の目的でシンボルを使用することはありません。

于 2010-02-25T08:32:59.073 に答える