2

これはおそらく基本的なscalaの質問ですが、その方法を理解することはできません:

この Java ループは、Scala を使用して次のように表現できます。

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

これが1つの可能な方法であることを理解しています:

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

しかし、Scalaでこれを行うためのより標準的な方法はありますか?

4

1 に答える 1

5

iterate関数を(または などのIterator他のクラスから)使用できます。StreamList

Iterator.iterate(1)(_*2).takeWhile(_ < 100000) foreach {...}
于 2012-09-28T20:12:14.497 に答える