【发布时间】:2013-04-27 17:43:03
【问题描述】:
我正在运行以下代码:
val it = List(1,1,1,2,2,3,3).iterator.buffered
val compare = it.head
it.takeWhile(_ == compare).toList
它返回 (1,1,1)。但是,如果我将其运行为:
val it = List(1,1,1,2,2,3,3).iterator.buffered
it.takeWhile(_ == it.head).toList
我得到 (1,1)。为什么会这样? head 不是在调用takeWhile 时评估的,结果应该相同吗?
【问题讨论】: