ハッシュを持っています:
h = {:a => "val1", :b => "val2", :c => "val3"}
ハッシュ値を参照できます。
h[:a], h[:c]
しかし、数値インデックスで参照したいと思います:
h[0] => val1
h[2] => val3
出来ますか?
h.values
要求された配列を提供します。
> h.values
# ⇒ [
# [0] "val1",
# [1] "val2",
# [2] "val3"
# ]
の答えが正しいとマークされている間、UPDh[h.keys[0]]
は、ベンチマークに少し興味があります。
h = {:a => "val1", :b => "val2", :c => "val3"}
Benchmark.bm do |x|
x.report { 1_000_000.times { h[h.keys[0]] = 'ghgh'} }
x.report { 1_000_000.times { h.values[0] = 'ghgh'} }
end
#
# user system total real
# 0.920000 0.000000 0.920000 ( 0.922456)
# 0.820000 0.000000 0.820000 ( 0.824592)
生産性の10%を吐き出しているようです。
h = {:a => "val1", :b => "val2", :c => "val3"}
keys = h.keys
h[keys[0]] # "val1"
h[keys[2]] # "val3"
では、配列インデックスとハッシュインデックスの両方が必要ですか?
最初のものだけが必要な場合は、配列を使用してください。
それ以外の場合は、次のようにすることができます。
h.values[0]
h.values[1]