3

在 Smalltalk 中以可移植方式使用符号的“最佳实践”规则是什么?我主要使用 squeak 和 pharo,我知道它们都允许 'foo' = #foo 和 #foo = 'foo' 为真,而其他 Smalltalks 则不允许。我了解符号用于识别,不应用于代替字符串。但是至少可以安全地假设一个符号对象是一个可以像 copyWith: 或 do: 这样发送消息的集合,还是必须先将它转换为某种集合?

任何意见,将不胜感激。

4

1 回答 1

6

我们在 Seaside 中遵循的规则是不要混合使用符号和字符串。这样你就避免了这个问题。并非在所有平台上,符号都是 String 的子类,因此您必须小心使用 #copyWith: 或 #do:。

我仅将符号用作与其他符号进行比较的廉价标记。我不会将符号用于其他任何事情。

于 2010-02-25T08:32:59.073 回答