Каков “наилучший практический” переносимый способ использования символов в Smalltalk?

StackOverflow https://stackoverflow.com/questions/2330048

Вопрос

Каковы правила "наилучшей практики" для использования символов в Smalltalk переносимым способом?В основном я использую squeak и pharo, и я знаю, что они оба допускают, чтобы 'foo' = #foo и #foo = 'foo' были истинными, в то время как другие Smalltalks этого не делают.Я понимаю, что символы предназначены для идентификации и не должны использоваться вместо строк.Но, по крайней мере, безопасно ли предполагать, что объект symbol представляет собой коллекцию, которой можно отправлять сообщения типа copyWith:или сделайте:, или вы должны сначала преобразовать это в какую-то коллекцию?

Буду признателен за любой совет.

Это было полезно?

Решение

Правило, которому мы следуем в Seaside, заключается в том, чтобы не смешивать Символы и Строки.Таким образом, вы избегаете проблемы.Не на всех платформах символ является подклассом String , поэтому вы должны быть осторожны с #copyWith:или #сделать:.

Я использую символы только как дешевый жетон, который вы сравниваете с другими символами.Я бы не стал использовать символы ни для чего другого.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top