我正在学习 Scala,如果这是一个愚蠢的问题,请耐心等待。
我有这个包和一个类(将其分解为最简单的版本):
package Foo {
class Bar {}
}
然后在main.scala文件中我有:
import Foo.Bar
object test {
def main() {
val b = new Bar()
}
}
为什么我得到这个:
test.scala:1:错误:Bar 不是 Foo 的成员
它指向import声明。
我正在学习 Scala,如果这是一个愚蠢的问题,请耐心等待。
我有这个包和一个类(将其分解为最简单的版本):
package Foo {
class Bar {}
}
然后在main.scala文件中我有:
import Foo.Bar
object test {
def main() {
val b = new Bar()
}
}
为什么我得到这个:
test.scala:1:错误:Bar 不是 Foo 的成员
它指向import声明。
scalac是 scala 编译器。Foo.bar需要为您编译才能使用它,因此您不能只将 main.scala 作为脚本运行。
您的代码中的另一个错误是该main方法需要
def main(args: Array[String]) { ...
(或者您可以test extends App改用该方法并取消该main方法)。
我可以确认您是否将上面的两个文件放在一个空目录中(在主方法签名上进行了更正)并运行,scalac *然后scala test它运行正常。
最可能的解释是你没有编译第一个文件,或者你在编译时做错了什么。假设两个文件都在当前目录中,那么这应该可以工作:
scalac *.scala
它应该在当前目录中生成一些类文件,以及Bar.class在Foo目录中创建的文件。