我正在运行以下代码:
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
结果应该是一样的吗?