为什么Ruby会公开符号?

12
为什么Ruby暴露出符号供显式使用?这不是通常由解释器/编译器处理的类型优化吗?
3个回答

9

问题的一部分在于Ruby字符串是可变的。由于每个Ruby分配的字符串必须是独立的(它不能缓存短/常见字符串),因此有一个Symbol类型让程序员拥有本质上是不可变的、内存高效的字符串非常方便。

此外,它们与enum具有许多相似之处,但对程序员来说更加简单。


4

Ruby符号在其他类似语言中用作字符串常量的替代品。除了性能方面的好处外,它们还可以用于在字符串数据和更抽象的符号之间进行语义区分。由于语法不同,它们可以在代码中清晰地区分。


3

您可能还想查看http://www.randomhacks.net/articles/2007/01/20/13-ways-of-looking-at-a-ruby-symbol。 - Andrew Grimm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接