gpt4 book ai didi

scala - 关于 protected[some_scope] 和 scala 中继承工作的困惑

转载 作者:行者123 更新时间:2023-12-01 23:34:47 24 4
gpt4 key购买 nike

这个问题是关于 scala 的 protected 范围的。以下代码运行完美。

//In firstfile.scala

package A{
class test{
protected[test] var a=0
}
}

package B{
class test1 extends A.test{
println(a)
}
}

但是当我把包 B 放在其他文件中时,编译失败说没有找到值 a

// In secondfile.scala

import A.test
package B{
class test1 extends test{
println(a)
}
}

我在 intellij 中运行这段代码。这可能是什么原因?这两个代码不一样吗?

最佳答案

我认为您发现了一个错误。我可以使用 Scala IDE 2.0.0-beta9 with Scala 2.9.0-1 在 Eclipse 中重现它。首先,让我们创建 Foo.scala:

package a

class Foo {
protected[Foo] var x = 0
}

然后是 Bar.scala:

package b

class Bar extends a.Foo {
println(x) // Error: Not found: value x
}

Eclipse 告诉我们,有一个错误。但清理项目后,此错误消失。我用 scalac 检查了第一次尝试就编译的所有内容(谁会怀疑)。

更新:

我开了工单#1000567关于这个问题的 Scala IDE bugtracker。

关于scala - 关于 protected[some_scope] 和 scala 中继承工作的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7130947/

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