簡體   English   中英

紅寶石哈希鍵compare_by_identity

[英]ruby hash keys compare_by_identity

我有以下內容:

h1 = {}
h1.compare_by_identity
h1['a'] = '1'
h1['a'] = '2'
h1['a'] = '3'
a_key = h1.keys.first
p h1[a_key]

它打印1,如何使其返回2或3?

如何使其返回2或3?

h1[h1.keys[0]] # => "1"
h1[h1.keys[1]] # => "2"
h1[h1.keys[2]] # => "3"

您當然可以直接訪問值列表,但是我不認為這符合您的問題:

h1.values # => ["1", "2", "3"]

這是因為'a'每次都是不同的對象。

'a'.object_id == 'a'.object_id
=> false
a = 'a'
a.object_id == a.object_id
=> true

您可以嘗試使用相同的對象/實例或符號。

h1 = {}
h1.compare_by_identity

h1['a'] = 1
puts h1['a'] # => nil

a = 'a'
h1[a] = 2
puts h1[a] # => 2

h1[:a] = 3
puts h1[:a] # => 3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM