我正在尝试让一个数组为两个变量赋值。
test = "hello, my,name,is,dog,how,are,you"
testsplit = test.split ","
testsplit.each do |x,y|
puts y
end
我认为它会打印
my
is
how
you
但似乎值只传递给x
而不传递给y
。当我运行此代码时,y
将返回空白状态。
答案 0 :(得分:5)
Array#each
每次迭代只传递一个项目(因此每次传递都会为数组赋值x,而y将始终分配给nil)。因此你需要使用{{1}参数为2的方法。
Enumerable#each_slice
答案 1 :(得分:4)
您可以使用each_slice一次获取2个元素:
test = "hello, my,name,is,dog,how,are,you"
testsplit = test.split ","
testsplit.each_slice(2) do |x,y|
puts y
end
# => my, is, how, you