我是Scala的初学者,来自Java背景。 我在两个文件中有两个单例对象定义,如下所示。
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
现在,当我尝试使用以下命令运行时,我无法找到&#39; LongLines&#39;。
[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吗?两者都在同一个文件夹中,但我使用过包。
答案 0 :(得分:2)
将导入行添加到顶部
import package_name._
或
import package_name.longlines
答案 1 :(得分:1)
1,你还没有编译FindLongLines.scala
吗?
第二,在Scala中,您可能在一个文件中有多个对象/类。对于命令行应用来说,将两个文件中的小对象分开可能有点过分