是否有一些很好的方法从哈希中提取键和值?
我的第一个方法是:
a = {:a => :b}
a.keys.first # => :a
a.values.first # => :b
但它看起来有点笨拙,所以我提出了这个:
k, v = {:a => :b}.to_a.flatten
k # => :a
v # => :b
还有其他方法吗?
答案 0 :(得分:4)
k, v = {a: :b}.first
k # => :a
v # => :b
答案 1 :(得分:2)
以下是另外两种方法,但我认为它们并不比sawa的答案更好:
key, val = *a.flatten
key, val = [*a][0]
或者,如果您不再关心原始哈希值:
key, val = a.shift
答案 2 :(得分:1)
这里有更多,但是和hirolau一样,我认为这不比sawa的答案好。
each_pair
,each
以及更多方法,返回Enumerator
个对象。有了这个,您可以使用next
获得next
值:
h.each_pair.next
# [:a, :b]
h.each.next
# => [:a, :b]
并且entries
返回数组数组:
a, b = h.entries[0]
或其他方式,使用ruby的模式匹配:
((a,b)) = h.entries