我正在学习 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
目录中创建的文件。
要在 IntelliJ 中快速测试 Scala 代码(使用Scala插件),您只需键入Ctrl++ Shift:F10
请注意,为了测试 Scala 类,您还有其他选择,IntelliJ 也支持: