单个哈希的多变量赋值

sea*_*ton 1 ruby arrays variables loops

我正在尝试让一个数组为两个变量赋值.

test = "hello, my,name,is,dog,how,are,you"
testsplit = test.split "," 
testsplit.each do |x,y|
  puts y
end
Run Code Online (Sandbox Code Playgroud)

我认为它会打印出来

my
is
how
you
Run Code Online (Sandbox Code Playgroud)

但似乎值只传递给x而不是传递给y.当我运行此代码时,y返回空.

Aru*_*hit 5

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
Run Code Online (Sandbox Code Playgroud)