26

私はScalaを初めて使用します。今のところ基本的なコードしか書けませんが、理論を学ぶだけでなく、もっと具体的に使い始めたいと思います。

HelloWorld.javaに次のJavaコードがあるとします。

public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hello, World");
    }

}

Scalaからそれを呼び出すためのコードは何でしょうか?

4

3 に答える 3

44

あなたの例では、あなたはメインを持っているだけで、他の場所から必ずしも呼び出す関数ではありません。しかし、あなたは次のような機能を持っていたとしましょう

package com.example.hello;

public class HelloWorld {
  public static void sayHello() {
    System.out.println("Hello, world!");
  }
}

(完全を期すために、例のパッケージも追加しました)。次に、Scalaコードで、次のことができます。

import com.example.hello._

object GreetWorld extends App {
  (0 until 10).foreach {
    HelloWorld.sayHello()
  }
}

ScalaでJava関数を10回使用して挨拶します。は、パッケージのすべてのメンバーをインポートします。または、代わり._に、importをインポートすることもできますimport com.example.hello.HelloWorld。コード内でオブジェクトimport com.example.hello.HelloWorld.sayHelloを参照する必要がないように、メソッド自体をインポートすることもできます。HelloWorld

どちらの言語もJVMバイトコードにコンパイルされるため、ScalaからJavaコードを呼び出すのは非常に簡単ですが、暗黙のパラメーターが含まれている場合、JavaからScalaを呼び出すのは難しい場合があります。

于 2013-03-19T18:09:49.860 に答える
2

同等のコードは次のようになります。

object HelloWorld extends App {
  println("Hello, world!")
}

そのコードをというファイルに保存した場合は、次のHelloWorld.scalaようにコンパイルして実行できます。

$ scalac HelloWorld.scala

$ scala HelloWorld
Hello, world!

または、REPLで作業している場合:

scala> :paste
// Entering paste mode (ctrl-D to finish)

object HelloWorld extends App {
  println("Hello, world!")
}

// Exiting paste mode, now interpreting.

defined module HelloWorld

scala> HelloWorld.main(Array.empty[String])
Hello, world!
于 2013-03-20T14:55:34.010 に答える
1
object HelloWorld{
      def main(args: Array[String]): Unit = {
      println("hello world")
    }

}

また

object HelloWorld extends App {
  println("Hello, world!")
}
于 2014-12-16T08:46:14.740 に答える