【发布时间】:2023-03-09 09:18:01
【问题描述】:
对于数据流场景,我需要递归地相互引用的值。以下不起作用:
class Foo(val that: Foo)
class Bar {
lazy val a: Foo = new Foo(b)
lazy val b: Foo = new Foo(a)
println(s"a = $a, b = $b")
}
new Bar // boom!
如何在不弄脏var 的情况下解决这个问题?
【问题讨论】:
-
您将如何使用
var解决这个问题? -
@Noah,我认为他的意思是
var内部Foo。 -
是的,
class Foo(var that: Foo); val a = new Foo(null); val b = new Foo(a); a.foo = b
标签: scala recursion lazy-evaluation