【问题标题】:Scala. foreach in one element Lists of Dates斯卡拉。 foreach in one element 日期列表
【发布时间】:2016-03-21 15:18:43
【问题描述】:

我想创建一个在单个日期或一段时间内工作的函数。为此,我制作了一个这样的字符串列表:

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)

现在我想访问 days 内容:

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

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

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

如果我使用范围,两种方法都可以正常工作...

有人知道为什么会出现这种行为吗?

提前致谢!

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

【问题讨论】:

    标签: list scala date foreach jodatime


    【解决方案1】:

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

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

    为了能够多次使用它,只需将迭代器转换为列表即可。

    val daysL = days.toList

    【讨论】:

    • 非常感谢V先生。我不知道迭代器的“功能”。你可以猜到,我对 Scala 还很陌生。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-07
    • 1970-01-01
    • 2011-03-13
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 2011-09-16
    相关资源
    最近更新 更多