Scala——不是包的成员

标签 scala

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

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

package Foo {
  class Bar {}
}

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

import Foo.Bar

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

为什么我会得到这个:

test.scala:1: error: Bar is not a member of Foo

它指向import语句。

最佳答案

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

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

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

(或者您可以使用 test extends App 来代替,并取消 main 方法)。

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

关于Scala——不是包的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12028590/

相关文章:

scala - 创建一个 bool 特征来检查两列是否相同

斯卡拉/猫 : How to unzip an NonEmptyList

mysql - 我的代码中的 SlickConfig 和 Guice 配置错误

scala - 向包含在 Try 实例中的抛出异常添加更多详细信息的惯用 Scala 方法是什么

scala - 有没有办法将默认大小写值作为参数传递

scala - 密封型参数

scala - scala 是如何生成字节码的?使用一些像 ASM 这样的库,还是直接编写二进制文件?

scala - 从案例类中过滤出一个字段

sql - 在 Apache Spark Join 中包含空值

scala - Spark - Scala - saveAsHadoopFile 抛出错误