gpt4 book ai didi

scala - 无法访问伴随对象的字段

转载 作者:行者123 更新时间:2023-12-04 16:34:22 26 4
gpt4 key购买 nike

我想知道,为什么一个类不能访问伴随对象的字段?

class MyClass {
println(val1) // not found, why?
}

object MyClass {
val val1 = "str"
}

它应该,它甚至应该可以访问 object MyClass 的私有(private)字段。 .

最佳答案

默认情况下,一个类“应该”访问它的伴生对象字段是有争议的。考虑伴随对象的 apply 的常见情况。方法用作工厂,对象本身有 apply做一些不同的事情的方法。阅读代码并知道是哪种方法会让人感到困惑! Roland Ewald对引用 http://www.scala-lang.org/old/node/2411.html#comment-8493 的另一个答案发表了评论这很好地总结了它:

"The thing is, it's a lot easier to import something into your namespace if you want it than it is to unimport if you don't. And personally I already have enough problems with shadowing."



这给出了答案。使用 import因此:
class MyClass {
import MyClass._
println(val1) // Should see it now!
}

object MyClass {
val val1 = "str"
}

关于scala - 无法访问伴随对象的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20103056/

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