【发布时间】:2011-01-19 10:16:18
【问题描述】:
为什么 Ruby 公开符号以供显式使用?这不是通常由解释器/编译器处理的那种优化吗?
【问题讨论】:
为什么 Ruby 公开符号以供显式使用?这不是通常由解释器/编译器处理的那种优化吗?
【问题讨论】:
部分问题在于 Ruby 字符串是可变的。由于 Ruby 分配的每个字符串都必须是独立的(它不能缓存短的/普通的),所以使用 Symbol 类型让程序员拥有本质上不可变的、内存高效的字符串是很方便的。
此外,它们与 enum 的许多特征相同,但对程序员来说痛苦更少。
【讨论】:
Ruby 符号用于代替其他类似语言中的字符串常量。除了性能优势之外,它们还可用于在语义上区分字符串数据和更抽象的符号。由于语法不同,它们可以在代码中清楚地区分。
【讨论】:
看看Ruby symbols的帖子。
【讨论】: