私はScalaが初めてです。私はゲームを作っていて、キャラクターが訪れることができるタイプの場所のリストを持っていますLocation
。これを実現するためのケース クラスとコンパニオン オブジェクトがあります。
LinkedLocations
insideLocation
はタイプの配列であり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))
}
私はそれらを怠惰な値にしようとしましたが、スタックオーバーフローで終わります。このような前方参照の問題を修正するにはどうすればよいですか? これを設計するためのより良い方法はありますか?