ScalaにDateTimeクラスとTimeSpanクラスがあります(<演算子と+演算子が正常に機能すると仮定します)。開始/停止時間とステッピングのタイムスパンをとる「範囲」関数を定義しようとしています。C#では、これをyieldで実行しますが、Scalaでも同じことができるはずです...奇妙なエラーが発生する場合を除きます。
'yield t'行に、「Illegalstartofstatement」が表示されます。
def dateRange(from : DateTime, to : DateTime, step : TimeSpan) =
{
// not sure what the list'y way of doing this is
var t = from
while(t < to)
{
yield t; // error: illegal start of statement
t = t + step
}
}
このコードを見て、私は2つのことに興味があります:1)私は何を間違えましたか?2)記述されたコードは非常に必須です(var tなどを使用します)。適度に高速なScalaでこれを行うためのより機能的な方法は何ですか?
ありがとう!