2016-03-30 3 views
2

Я начинаю в Scala, исходя из фона Java. У меня есть два определения объекта singleton в двух файлах, как показано ниже.Scala import class в той же папке

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 с командой ниже

[[email protected] test_longlines]# scalac LongLines.scala 
[[email protected] test_longlines]# ls 
FindLongLines.scala LongLines.class LongLines$.class LongLines.scala 

Теперь, когда Я попробую для запуска с помощью следующей команды, которую я получаю, нельзя найти символ для «LongLines».

[[email protected] 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? Оба находятся в одной папке, но я использовал пакет.

+0

то, что вы разместили, работает для меня. Вы используете пакеты? –

+0

nope.no с использованием пакетов – vijayashankard

ответ

1

первый, вы не компилировать FindLongLines.scala также?

2nd, в Scala у вас может быть более одного объекта/класса в одном файле. Может быть, это слишком много, чтобы отделить такие маленькие объекты в двух файлах для приложения командной строки.

+0

, скомпилировав FindLongLines.scala. благодаря – vijayashankard

1

Добавить импортную линию в верхней

import package_name._ 

или

import package_name.longlines 
+0

i dont use package – vijayashankard

+0

Я унаулю свои коды и прочее в папке с пакетом под названием src или что-то в этом роде. Измените «имя_пакета» на имя вашего пакета – Duzzz