У меня есть классы DateTime и TimeSpan в Scala (предположим, что операторы <и + работают должным образом) . Я пытаюсь определить функцию «диапазона», которая требует времени начала / остановки и промежутка времени для пошагового выполнения. В C # я бы сделал это с yield, и я думаю, что смогу сделать то же самое в Scala ... за исключением того, что я получаю странную ошибку.
В строке 'yield t' я получаю «Незаконное начало оператора».
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) код в том виде, в котором он был написан, очень важен (используется переменная t и т. Д.) . Какой более функциональный и достаточно быстрый способ сделать это в Scala?
Спасибо!