1

配列に 2 つの変数に値を割り当てさせようとしています。

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空に戻ります。

4

2 に答える 2

5

Array#each反復ごとに1つのアイテムのみを渡します(したがって、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
于 2013-10-02T15:52:43.003 に答える
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
于 2013-10-02T15:52:28.943 に答える