2015-12-15 65 views
0

我想创建一个在单个日期或一段时间内工作的函数。对于我做的字符串列表如下:斯卡拉。在一个元素中的foreach日期列表

import com.github.nscala_time.time.Imports._ 
val fromDate = "2015-10-15".toLocalDate 
val toDate = "2015-10-15".toLocalDate 
val days = Iterator.iterate(fromDate)(_ + 1.day).takeWhile(_ <= toDate).map(_.toString) 

现在我要访问天内容:

scala> days.foreach(println) 
2015-10-15 

scala> days.foreach(day => println(day)) 

随着第一的foreach我得到了天列表中的唯一元素,但与第二我什么也没得到。这只是一个示例,但我需要使用第二种形式,因为我需要在函数内部使用日期值。

如果我使用了一系列方法都一样工作,他们都应该...

任何人都知道为什么这种行为?

在此先感谢!

P.D.我不想使用另一种方法来创建字符串列表(除非我找不到解决方案)

回答

3

第二个函数的工作方式与第一个相同。

您已创建Iterator对象,您只能对迭代一次。

为了能够使用它任何次数只是将您的迭代器转换为列表。

val daysL = days.toList

+0

非常感谢五先生我dindn't知道迭代器的“功能”。正如你所能猜到的,我对Scala相当陌生。 – larariro

相关问题