ruby数组密钥对值?
我试图配对两个键值对,但我不确定如何实现这一点。以下是我的尝试:ruby数组密钥对值?,ruby,arrays,hash,Ruby,Arrays,Hash,我试图配对两个键值对,但我不确定如何实现这一点。以下是我的尝试: struc = Array[(3,4),(5,6)] for i in 0..1 puts "#{struc[i,i]}" end 但我希望的输出如下(前面的代码块没有生成): 试试这个: arr = [[3,4],[5,6]] arr.each do |(a,b)| puts "#{a} #{b}" end 此外,您还发现数组语法(array[(3,4)、(5,6)])不正确。为什么不使用散列呢。有了它,您可以:
struc = Array[(3,4),(5,6)]
for i in 0..1
puts "#{struc[i,i]}"
end
但我希望的输出如下(前面的代码块没有生成):
试试这个:
arr = [[3,4],[5,6]]
arr.each do |(a,b)|
puts "#{a} #{b}"
end
此外,您还发现数组语法(
array[(3,4)、(5,6)]
)不正确。为什么不使用散列呢。有了它,您可以:
struc = {3 => 4, 5 => 6}
要输出结果,可以使用each_pair方法,如下所示:
struc.each_pair do |key, value|
puts "#{key} #{value}"
end
在Ruby 2.3中,您可以执行以下操作:
arr = [[3,4],[5,6]]
arr.each do |a,b|
puts "#{a} #{b}"
end
注意只有在第一项是唯一键时才有效:
{3=>4,5=>6,3=>5}
将给出:{3=>5,5=>6}
它是一个散列,因此该键始终是唯一的。
arr = [[3,4],[5,6]]
arr.each do |a,b|
puts "#{a} #{b}"
end