0
今天我試着在intellij思想中調試scala程序,遇到了一個我無法理解的現象。 程序如下:無法理解intellij思想中scala的調試過程
import java.io._
import scala.collection.mutable.ArrayBuffer
class Person(val name: String) extends Serializable {
val friends = new ArrayBuffer[Person]
// OK—ArrayBuffer is serializable
def description = name + " with friends " +
friends.map(_.name).mkString(", ")
}
object TestSec08 extends App{
val fred = new Person("Fred")
val wilma = new Person("Wilma")
val barney = new Person("Barney")
fred.friends += wilma
fred.friends += barney
wilma.friends += barney
barney.friends += fred
val out = new ObjectOutputStream(new FileOutputStream("test.obj"))
out.writeObject(fred)
out.close()
val in = new ObjectInputStream(new FileInputStream("test.obj"))
val savedFred = in.readObject().asInstanceOf[Person]
in.close()
savedFred.description
savedFred.friends.map(_.description)
}
然後我調試它從第一行,當它轉到4號線,這是「fred.friends + =威爾瑪」,在我的感覺,就應該繼續下一行 - 「fred.friends + = barney」。但相反,它回到了讓我非常困惑的第一條線。有人可以解釋爲什麼會發生這種情況嗎?提前致謝!