[英]difference between each.with_index and each_with_index in Ruby?
我真的很困惑each.with_index
和each_with_index
之间的区别。 它们有不同的类型,但在实践中似乎完全相同。
with_index
方法使用可选参数来偏移起始索引。 each_with_index
执行相同的操作,但没有可选的起始索引。
例如:
[:foo, :bar, :baz].each.with_index(2) do |value, index|
puts "#{index}: #{value}"
end
[:foo, :bar, :baz].each_with_index do |value, index|
puts "#{index}: #{value}"
end
输出:
2: foo
3: bar
4: baz
0: foo
1: bar
2: baz
each_with_index
被引入Ruby。 with_index
稍后介绍:
0
以外的数字开始。 今天,从通用性和可读性的角度来看,使用with_index
会更好,但从加速代码的角度来看, each_with_index
运行速度比each.with_index
快一些。
当您认为通过简单链接几种方法可以轻松表达单个方法时,通常情况下单个方法比链更快。 至于另外一个例子, reverse_each
运行速度比reverse.each
。 这些方法有理由存在。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.