scala 生成指定日期范围的list
可以通过scala中的流处理,生成指定范围内的日期list
import java.time.LocalDate
def dateStream(fromDt:LocalDate):Stream[LocalDate]={
fromDt #::dateStream(fromDt.plusDays(1))
}
dateStream(LocalDate.of(2021,5,1))
.takeWhile(_.isBefore(LocalDate.of(2021,5,16)))
.toList.map(_.toString)
res0: List[String] = List(2021-05-01, 2021-05-02, 2021-05-03, 2021-05-04, 2021-05-05, 2021-05-06, 2021-05-07, 2021-05-08, 2021-05-09, 2021-05-10, 2021-05-11, 2021-05-12, 2021-05-13, 2021-05-14, 2021-05-15)
Stream(流)是Scala的一个特性,是一个惰性的列表,列表中的元素只有其在被需要的时候才经过计算,流计算能提高程序的性能。Python中的生成器(yield关键词)也是采用的惰性计算。
scala中使用“#::”操作符来构造一个流。