我有一个看起来像这样的列表:
list = 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'
Run Code Online (Sandbox Code Playgroud)
我想逐个迭代它,这样我就可以在同一个迭代中修改'a'和'b'.这将是我需要做的java等价物:
for (int i = 0; i < list.size(); i+=2){
System.out.println(list.get(i) + list.get(i+1));
}
Run Code Online (Sandbox Code Playgroud)
你可以使用each_slice它:
list.each_slice(2) { |first, second| p first + second }
=> "ab"
"cd"
"ef"
"gh"
Run Code Online (Sandbox Code Playgroud)
使用时each_slice(2),在每次迭代时传入像["a","b"]这样的块数组.数组的大小取决于each_slice参数.然后,在块中,接下来发生:
first, second = ["a", "b"]
first
#=>"a"
second
#=>"b"
Run Code Online (Sandbox Code Playgroud)
你可以使用 Enumerable#each_slice
list.each_slice(2) { |x,y| p "#{x} #{y}" }
Run Code Online (Sandbox Code Playgroud)