Tôi đang chạy các đoạn mã sau:Scala - lặp và takeWhile
val it = List(1,1,1,2,2,3,3).iterator.buffered
val compare = it.head
it.takeWhile(_ == compare).toList
và nó sẽ trả về (1,1,1). Tuy nhiên, nếu tôi chạy như sau:
val it = List(1,1,1,2,2,3,3).iterator.buffered
it.takeWhile(_ == it.head).toList
Tôi nhận được (1,1). Tại sao điều này là trường hợp? Không phải là head
được đánh giá khi gọi takeWhile
và kết quả sẽ giống nhau không?