2016-03-30 13 views
2

私はJavaの背景から来るScalaの初心者です。 私は2つのシングルトンオブジェクト定義を以下のように2つのファイルに持っています。同じフォルダ内の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) 
} 

}

Iは最初場合、以下のコマンド

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

と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

パッケージを使用していません – vijayashankard

答えて

1
にインポート行を追加します。

第一、あなたはまた、FindLongLines.scalaをコンパイルしませんでしたか?

第2に、Scalaでは、1つのファイルに複数のオブジェクト/クラスが存在する場合があります。おそらく、コマンドラインアプリケーション用に2つのファイルに小さなオブジェクトを分けるのは難しいかもしれません。

+0

FindLongLines.scalaがコンパイルされました。ありがとう – vijayashankard

1

トップ

import package_name._ 

または

import package_name.longlines 
+0

パッケージを使用しないでください – vijayashankard

+0

srcや何かというフォルダパッケージに私のコードやものを徹底的に保存します。 'package_name'をパッケージの名前に変更します。 – Duzzz

関連する問題