Сегодня я попытался отладить программу scala в интеллектуальной идее, я встретил одно явление, которое я не могу понять. Программа выглядит следующим образом:Не могу понять процедуру отладки в scala в intellij idea
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». Но вместо этого он возвращается к первой строке, которая меня очень смутила. Может ли кто-нибудь объяснить причину, почему так происходит? Заранее спасибо!