【发布时间】:2017-01-20 09:34:14
【问题描述】:
我是 Scala 新手。我正在制作一个游戏,我有一个角色可以访问的位置列表,类型为Location。我有一个案例类和一个伴随对象来实现这一点。
Location 内部的LinkedLocations 是一个Location 类型的数组,并且可以有任意数量的位置,一个位置可以通向。在这种情况下,房间 1 通向房间 2,反之亦然。
case class Location(name: String, desc: String, linkedLocations: Array[Location]){}
object Location {
val none: Location = Location("none","none",Array(none))
val room1: Location = Location("room 1","you are in room 1",Array(room2))
val room2: Location = Location("room 2","you are in room 2",Array(room1))
room1.linkedLocations.foreach(location=>println(location.name))
}
我尝试让它们成为惰性 val,但最终导致堆栈溢出。 如何解决这样的前向引用问题? 有没有更好的方法来设计这个?
【问题讨论】:
标签: scala runtime-error case-class forward-reference