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