0

Scalaでプログラミングを学んでいます。と という名前の 2 つのパッケージがchapter3ありchapter4ます。以下はコードです:

FileOperation.scalaパッケージ内のファイルのコードchapter3:

package chapter3

import scala.io.Source

object FileOperation {

  /**
   * This function determines the length of line length.
   */
  def findLineLengthWidth(line : String) : Int = {
    val len = line.length.toString.length()
    return len;
  }

  def readFile(filename : String) {
    val lines = Source.fromFile(filename).getLines().toList
    val longestLine = lines.reduceLeft((a, b) => if(a.length > b.length) a else b)
    val maxlength = findLineLengthWidth(longestLine)

    for (line <- lines) {
      val len = findLineLengthWidth(line)
      val spacecount = (maxlength - len)
      val padding = " " * spacecount
      println(padding + line.length +"|"+ line)
    }
  }
}

chapter4 パッケージのファイルのコード: Summer.scala

package chapter4

import chapter3.FileOperation._

object Summer {

  def main(args: Array[String]): Unit = {
    {
      //val file = new FileOperation
      readFile("abc.txt")
    } 
  }
}

このコードを Eclipse で実行すると、正常に動作します。ただし、ターミナルでコンパイルしようとすると、次のエラーが発生します。

$ scalac *.scala
Summer.scala:3: error: not found: object chapter3
import chapter3.FileOperation._
       ^
Summer.scala:11: error: not found: value readFile
      readFile("abc.txt")
      ^
two errors found
4

1 に答える 1

1

ディレクトリ構造が次のようになっていることを確認してください。

chapter3/FileOperation.scala
chapter4/Summer.scala

次に、親ディレクトリから次を実行します。

scalac chapter3/FileOperation.scala chapter4/Summer.scala

これは問題なくコンパイルされます。それらを個別にコンパイルする場合は、依存するFileOperationため、最初に確認してください。Summer

コンパイルしたら、次のコマンドで実行できます。

scala -cp .:chapter3:chapter4 chapter4.Summer
于 2013-03-28T01:22:06.210 に答える