【发布时间】:2014-09-09 22:17:45
【问题描述】:
我不清楚符号的价值和正确使用。
好处似乎是它们消除了对相同哈希的多个副本的需要,因为它只存在于内存中。我想知道这是否属实,以及这会带来什么其他好处。
如果我创建一个具有name、email 和password 等属性的用户对象,并为每个属性使用符号而不是字符串,这是否意味着每个属性只有一个对象?看起来这样可以避免哈希中属性的字符串副本(这似乎是一件好事)。
有人能帮我理解什么是符号,什么时候最好在哈希中的字符串上使用符号?各有什么好处和弊端?
另外,谁能谈谈每个人的内存权衡?由于可扩展性很重要,我很好奇符号是否有助于提高速度。
【问题讨论】:
-
太棒了,谢谢。你知道相对的内存权衡吗?我可以说创建的对象更少,我认为这通常会更好。但我也对实际的性能体验或对实际权衡的更多见解感到好奇。
-
我不明白你为什么提到哈希。哈希是否与您的问题相关?而且我不知道您所说的“需要相同哈希的多个副本”是什么意思。
-
就像我说的,我是 ruby 的新手,所以也许我没有像以前那样清楚。我提到了哈希,因为到目前为止我看到的主要领域是符号被用作哈希中重复使用的字符串的替代品。
-
第二个链接比我发布的第一个链接要好得多,它们两个结合起来应该可以形成你的答案。如果还有什么不清楚的,请告诉我,我会尽力解答。