为什么Ruby会暴露符号?

时间:2010-02-21 20:40:10

标签: ruby symbols

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

3 个答案:

答案 0 :(得分:9)

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

此外,它们与enum共享许多特征,但程序员的痛苦却少了。

答案 1 :(得分:4)

Ruby代码用于代替其他类似语言中的字符串常量。除了性能优势之外,它们还可用于在语义上区分字符串数据和更抽象的符号。在语法上不同,它们可以在代码中清楚地区分。

答案 2 :(得分:3)

查看Ruby symbols帖子。