ruby – 用索引无限次地做一些事情

前端之家收集整理的这篇文章主要介绍了ruby – 用索引无限次地做一些事情前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
more ruby way of doing project euler #2年,部分代码
while((v = fib(i)) < 4_000_000)
  s+=v if v%2==0
  i+=1
end

有没有办法将i = 1更改为更有功能的编程风格构造?

我能想到的最好的是

Float::MAX.to_i.times do |i|
  v = fib(i)
  break unless v < 4_000_000
  s += v if v%2==0
end

因为你不能在浮点数上调用.times.

解决方法

Numeric.step具有无限远(极限)和1(步长)的默认参数.
1.step do |i|
  #...
end

为了好玩,你甚至可以试试

1.step.size
原文链接:https://www.f2er.com/ruby/266652.html

猜你在找的Ruby相关文章