【发布时间】:2013-08-22 02:25:40
【问题描述】:
见以下代码:
1 str1 = gets
2 str2 = "Hello"
3 puts str1
4 puts str1.to_sym().object_id()
5 puts str2.to_sym().object_id()
6 puts :"Hello".object_id()
在第 1 行,我从标准输入输入“Hello”并将此字符串保存到 var str1。在第 2 行,我将字符串“Hello”保存到 var str2。现在 str1 和 str2 包含相同的字符串,尽管它们是不同的字符串对象,并且它们的值相同。根据符号规则,我除了可以从 str1 和 str2 中获取“Hello”的游戏符号。但输出是:
Hello
213748
213548
213548
看起来 str1 与 str2 有不同的符号。如何从 str1 中获取“Hello”的符号?
我问这个问题是因为我面临一个问题,我需要从标准输入输入一些单词,然后使用这些单词作为键来构建哈希表。由于哈希表应该使用符号作为键以避免内存浪费,因此我需要获取输入单词的符号。
【问题讨论】:
-
不要使用
to_sym()和object_id(),只使用to_sym和object_id。这是编写别人喜欢阅读的 Ruby 的关键。
标签: ruby