請看下面的代碼:Ruby:如何通過var保存字符串來獲取符號?
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號線,我輸入「你好」,並保存該字符串變種STR1。在第2行中,我將一個字符串「Hello」保存到var str2。現在str1和str2包含相同的字符串,儘管它們是不同的字符串對象,並且它們的值相同。根據符號的規則,我除了可以從str1和str2中獲得「Hello」的遊戲符號之外。但輸出是:
Hello
213748
213548
213548
看起來str1與str2有不同的符號。我怎樣才能從str1中獲得「Hello」的符號?
我問這個問題,因爲我面臨一個問題,我需要輸入stdin的一些單詞,然後使用這些單詞作爲鍵來構建一個哈希表。由於散列表應該使用符號作爲關鍵字來避免內存浪費,所以我需要獲得輸入字符的符號。
不要使用'to_sym()'和'OBJECT_ID()',只要使用'to_sym'和'object_id'。這對於編寫Ruby來說非常關鍵,因爲別人會喜歡閱讀。 – meagar