我运行下面的代码:斯卡拉 - 迭代器和takeWhile
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
后进行评估,结果应该是相同的?