我是来自Java背景的Scala的初学者。
我在以下两个文件中有两个单例对象定义。

LongLines.scala

import scala.io.Source

object LongLines {

  def processFile(filename: String, width: Int) {
    val source = Source.fromFile(filename)
    for (line <- source.getLines)
      processLine(filename, width, line)
  }

  private def processLine(filename: String,
      width: Int, line: String) {

    if (line.length > width)
      println(filename +": "+ line.trim)
  }
}

FindLongLines.scala
object FindLongLines {
def main(args: Array[String]) {
  val width = args(0).toInt
  for (arg <- args.drop(1))
    LongLines.processFile(arg, width)
}

}

我首先使用以下命令编译了LongLines.scala
[root@vm test_longlines]# scalac LongLines.scala
[root@vm test_longlines]# ls
FindLongLines.scala  LongLines.class  LongLines$.class  LongLines.scala

现在,当我尝试使用以下命令运行时,我找不到“LongLines”的符号。
[root@vijayvm test_longlines]# scala -cp . FindLongLines.scala 10 LongLines.scala
/home/scala/dev/test_longlines/FindLongLines.scala:5: error: not found: value LongLines
    LongLines.processFile(arg, width)
    ^

发现一个错误

我应该在FindLongLines.scala中导入LongLines吗?两者都在同一个文件夹中,但我已经使用过包装。

最佳答案

1,您还没有编译FindLongLines.scala吗?

第二,在Scala中,单个文件中可能有多个对象/类。在命令行应用程序中将如此小的对象分成两个文件也许是过大的选择

07-28 01:19
查看更多