Что такое «наилучшая практика» переносимого способа использования символов в Smalltalk? - PullRequest
2 голосов
/ 25 февраля 2010

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

Любой совет будет оценен.

1 Ответ

5 голосов
/ 25 февраля 2010

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

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

...