在类SeqLike.scala
中有一个函数调用reverse
它反转一个序列。例如它使List(1,2,3,4)
`List(4,3,2,1)
在源代码中,描述是:
def reverse: Repr = {
var xs: List[A] = List() //Line 1
for (x <- this)
xs = x :: xs
val b = newBuilder ////Line 4
b.sizeHint(this)
for (x <- xs)
b += x
b.result
}
我不明白的是:第(1-3)行完成了这项工作。但是为什么它会创建一个新的builder,然后向它添加元素以返回。只需 Line[1-3] 就足够了