我试图让一个数组为两个变量赋值。
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
返回为空。
Array#each
每次迭代只会传递一个项目(因此每次传递都会从数组中为 x 分配一个值,而 y 将始终分配给 nil)。因此您需要使用Enumerable#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
您可以使用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