我是来自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中,单个文件中可能有多个对象/类。在命令行应用程序中将如此小的对象分成两个文件也许是过大的选择