Почему Ruby выставляет символы? - PullRequest
12 голосов
/ 21 февраля 2010

Почему Ruby предоставляет символы для явного использования? Разве это не тот тип оптимизации, который обычно обрабатывается интерпретатором / компилятором?

Ответы [ 3 ]

9 голосов
/ 21 февраля 2010

Часть проблемы в том, что строки Ruby являются изменяемыми. Поскольку каждая строка, которую выделяет Ruby, должна быть независимой (она не может кэшировать короткие / общие), удобно иметь тип Symbol, чтобы позволить программисту иметь то, что по сути является неизменяемым и эффективным для памяти строками.

Кроме того, они имеют много общих характеристик с enum, но для программиста менее болезненно.

4 голосов
/ 21 февраля 2010

Символы Ruby используются вместо строковых констант в других похожих языках. Помимо повышения производительности, они могут использоваться для семантического различия между строковыми данными и более абстрактным символом. Будучи синтаксически различными, их можно четко различить в коде.

3 голосов
/ 22 февраля 2010

Посмотрите на Рубиновые символы Пост.

...