Ruby 是否可以将每个和与_索引连接起来?

Ruby 是否可以将每个和与_索引连接起来?,ruby,Ruby,是否最好不要像这样将每个和与_index连接起来 array.each_with_index { ... } 还是完全可以接受串联 array.each.with_index { ... } 这两种形式都是正确的,都会起作用。但是,在所列的情况下,首选第一种形式,因为它为此任务使用了专门构建的方法 第二种形式通常应保留给没有with index选项的方法,如下面这段愚蠢的代码: ['a', 'b', 'c', 'd'].select.with_index {|_d, i| (i%2)==0

是否最好不要像这样将
每个
与_index
连接起来

array.each_with_index { ... }
还是完全可以接受串联

array.each.with_index  { ... }

这两种形式都是正确的,都会起作用。但是,在所列的情况下,首选第一种形式,因为它为此任务使用了专门构建的方法

第二种形式通常应保留给没有with index选项的方法,如下面这段愚蠢的代码:

['a', 'b', 'c', 'd'].select.with_index {|_d, i| (i%2)==0} 
其输出为:

["a", "c"]

这两种形式都是正确的,都会起作用。但是,在所列的情况下,首选第一种形式,因为它为此任务使用了专门构建的方法

第二种形式通常应保留给没有with index选项的方法,如下面这段愚蠢的代码:

['a', 'b', 'c', 'd'].select.with_index {|_d, i| (i%2)==0} 
其输出为:

["a", "c"]
请注意,(不像)接受一个可选参数,该参数等于第一个索引(默认为零)。因此,如果您希望索引从
1
开始,比如说,您可以使用
索引(1)
而不是
来编写
.each。如果
i
是块变量,这可以避免在块内写入
i+1
。请注意,(不像)采用一个等于第一个索引的可选参数(默认为零)。因此,如果您希望索引从
1
开始,比如说,您可以使用
索引(1)
而不是
来编写
.each。如果
i
是块变量,则可以避免在块内写入
i+1