Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ruby数组密钥对值?_Ruby_Arrays_Hash - Fatal编程技术网

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