为什么Ruby会暴露符号?

Jer*_*ome 12 ruby symbols

为什么Ruby公开符号以供显式使用?这不是通常由解释器/编译器处理的那种优化吗?

zen*_*azn 9

部分问题是Ruby字符串是可变的.因为Ruby分配的每个字符串必须是独立的(它不能缓存短/普通字符串),所以有一种Symbol类型可以让程序员拥有本质上不可变的,节省内存的字符串.

而且,它们与enums的共享许多特征,但程序员的痛苦较少.