gpt4 book ai didi

scala - 自引用值

转载 作者:行者123 更新时间:2023-12-01 11:51:17 25 4
gpt4 key购买 nike

我遇到了一个值初始化问题:

class Top 

class X(val v : Top) extends Top
class Y extends Top

X 是使用其他 Top 类型对象构造的类,例如 X 或 Y。这意味着它可以使用自身构造。例如,

val x = new X(x) 

编译器可以工作,但是当我访问 v 字段时,返回的是 null。

scala> x.v 
res9: Top = null

我尝试了惰性初始化和按名称参数,得到了相同的结果。我的 Scala 版本是 2.9.1。谁能帮帮我?

最佳答案

你的代码是如何使用 lazy 和 call-by-name 的?它像这样对我有用:

class Top
class X(_v: => Top) extends Top {
lazy val v = _v
}

scala> lazy val x: X = new X(x)
x: X = <lazy>

scala> x.v
res3: Top = X@422d15ad

关于scala - 自引用值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11273273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com