Pochi giorni fa ho trovato l'essenza di Paul Philip https://gist.github.com/paulp/9085746 che mostra un comportamento abbastanza strano. non ho trovato alcuna spiegazione come è possibilescala mutable val Lista
semplificato frammento di codice:
val buf = new ListBuffer[Int]()
buf ++= Seq(1,2,3)
val lst: List[Int] = buf.toIterable.toList
println(lst) //List(1,2,3)
buf ++= Seq(4,5,6)
println(lst) //List(1,2,3,4,5,6)
Esso funziona come previsto, senza toIterable
val buf = new ListBuffer[Int]()
buf ++= Seq(1,2,3)
val lst: List[Int] = buf.toList
println(lst) //List(1,2,3)
buf ++= Seq(4,5,6)
println(lst) //List(1,2,3)
Che cosa sta succedendo lì?
Questo è un bug, giusto? Voglio dire, in nessun modo questo comportamento è in realtà inteso ... – Dima
@Dima Credo che sia un bug – Odomontois
Sembra che non sia proprio appunto 'append': ad esempio,' buf - = 3' muta anche il ' lst' – Dima