【发布时间】:2015-12-28 17:44:30
【问题描述】:
如何分别访问此哈希中的三个对象?
hash = {"Paul" => [25, 18]}
在这段代码中,
hash.each_pair do |k, v|
print "#{k}: "
v.each do |n|
print "#{n} "
end
print "\n"
end
变量n 将[25, 18] 作为单个对象访问。例如,|n, m| 不起作用。
【问题讨论】:
如何分别访问此哈希中的三个对象?
hash = {"Paul" => [25, 18]}
在这段代码中,
hash.each_pair do |k, v|
print "#{k}: "
v.each do |n|
print "#{n} "
end
print "\n"
end
变量n 将[25, 18] 作为单个对象访问。例如,|n, m| 不起作用。
【问题讨论】:
你可以像下面这样
hash = {}
hash["Paul"] = [25, 18]
hash.each_pair do |k, (v1, v2, *rest)|
print "#{k}: "
print "#{v1} "
print "#{v2} "
print "\n"
end
#=> Paul: 25 18
或者,您可以尝试以下方法:
hash = {}
hash["Paul"] = [25, 18]
hash.each_pair do |k, v|
print "#{k}: "
v.tap { |m, n|
print "#{m} "
print "#{n} "
}
print "\n"
end
#=> Paul: 25 18
【讨论】:
p [hash.keys, hash.values].flatten
# ["Paul", 25, 18]
【讨论】: