Подтвердить что ты не робот

Почему Ruby предоставляет символы?

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

4b9b3361

Ответ 1

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

Кроме того, они имеют множество характеристик с enum, но с меньшими проблемами для программиста.

Ответ 2

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