首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何理解Ruby中的符号

如何理解Ruby中的符号
EN

Stack Overflow用户
提问于 2010-02-26 21:22:05
回答 11查看 42.3K关注 0票数 85

尽管我读过"Understanding Ruby Symbols",但当涉及到使用符号时,我仍然对内存中数据的表示感到困惑。如果一个符号,其中两个包含在不同的对象中,存在于相同的内存位置,那么它们为什么包含不同的值呢?我原本期望相同的内存位置包含相同的值。

这是链接中的引用:

与字符串不同,具有相同名称的符号在

会话期间仅在内存中存在一次

我不明白它是如何区分相同内存位置中包含的值的。

考虑这个例子:

代码语言:javascript
复制
patient1 = { :ruby => "red" }
patient2 = { :ruby => "programming" }

patient1.each_key {|key| puts key.object_id.to_s}
3918094
patient2.each_key {|key| puts key.object_id.to_s}
3918094

patient1patient2都是散列,这很好。然而,:ruby是一个符号。如果我们要输出以下内容:

代码语言:javascript
复制
patient1.each_key {|key| puts key.to_s}

那么输出的是什么?"red"还是"programming"

暂时忘记哈希,我认为符号就是指向某个值的指针。我的问题是:

  • 我可以为符号赋值吗?
  • 是一个符号,它只是一个指向变量的指针,其中包含一个值。
  • 如果符号是全局的,这是否意味着符号总是指向一件事?
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2341837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档