我在 Scala 中有一个 DateTime 和 TimeSpan 类(假设 < 和 + 运算符正常工作)。我正在尝试定义一个“范围”函数,该函数需要开始/停止时间和步进时间跨度。在 C# 中,我会用产量来做这件事,我想我应该能够在 Scala 中做同样的事情......除了我遇到了一个奇怪的错误。
在 'yield t' 行,我得到“Illegal start of statement”。
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
}
}
看着这段代码,我很好奇两件事:1)我做错了什么?2) 编写的代码非常必要(使用 var t 等)。在 Scala 中执行此操作的更实用的方法是什么?
谢谢!