2

私は Scala を学んでいるので、これがばかげた質問である場合はご容赦ください。

私はこのパッケージとクラスを持っています(最も単純なバージョンに分解しました):

package Foo {
  class Bar {}
}

次に、main.scalaファイルに次のものがあります:

import Foo.Bar

object test {
  def main() {
    val b = new Bar()
  }
}

なぜ私はこれを得るのですか:

test.scala:1: エラー: Bar は Foo のメンバーではありません

import発言を指しています。

4

3 に答える 3

3

scalacScalaコンパイラです。Foo.bar使用するにはコンパイル済みである必要があるため、main.scalaをスクリプトとして実行することはできません。

コードのもう1つの間違いは、mainメソッドが次のようになる必要があることです。

def main(args: Array[String]) {  ...

test extends App(または、代わりにメソッドを使用しないこともできますmain)。

上記の2つのファイルを(メインメソッドのシグネチャが修正された状態で)空のディレクトリに配置して実行したscalac *後、scala test正しく実行されるかどうかを確認できます。

于 2012-08-19T20:44:43.123 に答える
1

最も可能性の高い説明は、最初のファイルをコンパイルしていないか、コンパイル時に何か間違ったことをしているということです。両方のファイルが現在のディレクトリにあるとしましょう。これでうまくいくはずです:

scalac *.scala

現在のディレクトリにいくつかのクラス ファイルを生成するだけでなく、作成するディレクトリBar.class内のファイルも生成する必要Fooがあります。

于 2012-08-19T20:52:34.327 に答える
0

IntelliJ で ( Scala プラグインCtrlを使用して) scala コードをすばやくテストするには、 + Shift+と入力するだけですF10

Scala でのテスト コード

Scala クラスをテストするには、IntelliJ でもサポートされている他の選択肢があることに注意してください。

于 2012-08-19T18:37:48.667 に答える