Почему Ruby предоставляет символы для явного использования? Разве это не оптимизация, которая обычно обрабатывается интерпретатором/компилятором?
Почему Ruby предоставляет символы?
Ответ 1
Часть проблемы заключается в том, что строки Ruby являются изменяемыми. Поскольку каждая строка, которую Ruby выделяет, должна быть независимой (она не может кэшировать короткие/общие), удобно иметь тип Symbol
, чтобы программист имел то, что по сути неизменяемо, с эффективными по памяти строками.
Кроме того, они имеют множество характеристик с enum
, но с меньшими проблемами для программиста.
Ответ 2
Символы Ruby используются вместо строковых констант на других подобных языках. Помимо преимущества производительности, они могут использоваться для семантического различия между строковыми данными и более абстрактным символом. Будучи синтаксически отличными, они могут быть четко различимы в коде.
Ответ 3
Посмотрите символы Ruby.