2

我正在学习 Scala,如果这是一个愚蠢的问题,请耐心等待。

我有这个包和一个类(将其分解为最简单的版本):

package Foo {
  class Bar {}
}

然后在main.scala文件中我有:

import Foo.Bar

object test {
  def main() {
    val b = new Bar()
  }
}

为什么我得到这个:

test.scala:1:错误:Bar 不是 Foo 的成员

它指向import声明。

4

3 回答 3

3

scalac是 scala 编译器。Foo.bar需要为您编译才能使用它,因此您不能只将 main.scala 作为脚本运行。

您的代码中的另一个错误是该main方法需要

def main(args: Array[String]) {  ...

(或者您可以test extends App改用该方法并取消该main方法)。

我可以确认您是否将上面的两个文件放在一个空目录中(在主方法签名上进行了更正)并运行,scalac *然后scala test它运行正常。

于 2012-08-19T20:44:43.123 回答
1

最可能的解释是你没有编译第一个文件,或者你在编译时做错了什么。假设两个文件都在当前目录中,那么这应该可以工作:

scalac *.scala

它应该在当前目录中生成一些类文件,以及Bar.classFoo目录中创建的文件。

于 2012-08-19T20:52:34.327 回答
0

要在 IntelliJ 中快速测试 Scala 代码(使用Scala插件),您只需键入Ctrl++ ShiftF10

Scala 中的测试代码

请注意,为了测试 Scala 类,您还有其他选择,IntelliJ 也支持:

于 2012-08-19T18:37:48.667 回答