Scala for循环 - 在下一个循环中通过2 * i

时间:2012-09-28 20:08:49

标签: scala

这可能是一个基本的scala问题,但无法弄清楚如何:

如何使用Scala表示此java循环:

for (int i=1;i<100000;i=2*i)

我理解这是一种可能的方式:

  def loopByTwiceBefore(from:Int, to:Int)(f:Int=>Unit):Unit = {
    if (from<to){
        f(from)
        loopByTwiceBefore(from*2, to)(f);
    }
  }  

但在Scala中是否有更规范的方法可以做到这一点。

1 个答案:

答案 0 :(得分:5)

您可以使用iterate中的Iterator功能(或StreamList等其他类别的功能。)

Iterator.iterate(1)(_*2).takeWhile(_ < 100000) foreach {...}