gpt4 book ai didi

scala - Companion 类需要导入 Companion 对象方法和嵌套对象?

转载 作者:行者123 更新时间:2023-12-04 00:50:04 28 4
gpt4 key购买 nike

我正在查看与 Akka 相关的类型安全激活器代码,以下构造引起了我的兴趣:

伴侣对象:

object MarkerActor {
sealed trait MarkerMessage
case object Stop extends MarkerMessage
..
def objectMethod = print("hi from companion object")
}

伴侣类:它导入伴侣对象方法:
class MarkerActor extends Actor with ActorLogging {
import MarkerActor._ // Comment this line to compare w or w/o import available

objectMethod // just to see if 'visible' within companion class

override def receive = {
case Stop => {

所以..这有点令人惊讶。为什么伴随类/对象之间没有“特殊关系”,允许类自动“查看”对象方法?

更新 我对此有点怀疑,因此继续注释掉“import MarkerActor._”,这导致 Companion Class 中出现“Symbol not found: Stop”错误。所以..导入确实是必需的。

最佳答案

几年前,有人讨论过是否将所有伴随对象成员隐式导入到它们的父类中。当时做出的决定(今天仍然有意义)是要求显式导入,因为添加额外的导入比删除不需要的导入更容易。 Here is the full discussion .

关于scala - Companion 类需要导入 Companion 对象方法和嵌套对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23704769/

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