为什么Ruby公开符号以供显式使用?这不是通常由解释器/编译器处理的那种优化吗?
答案 0 :(得分:9)
部分问题是Ruby字符串是可变的。因为Ruby分配的每个字符串必须是独立的(它不能缓存短/普通字符串),所以有一个Symbol
类型让程序员拥有本质上不可变的,内存有效的字符串。
此外,它们与enum
共享许多特征,但程序员的痛苦却少了。
答案 1 :(得分:4)
Ruby代码用于代替其他类似语言中的字符串常量。除了性能优势之外,它们还可用于在语义上区分字符串数据和更抽象的符号。在语法上不同,它们可以在代码中清楚地区分。
答案 2 :(得分:3)
查看Ruby symbols帖子。