web-dev-qa-db-ja.com

Intellij-ideaのscalaクラス、スクリプト、ワークシートの違いは何ですか?

scalaプログラミング(sbtプラグインを使用)にIntellij-ideaを使用しています。

scalaクラス、scalaスクリプト、scalaワークシートの違いは何ですか。それぞれを使用する場合それら?

簡単な例で説明できれば、これはとてもいいことです。

ありがとう

20
Omid Ebrahimi

scalaコードを実行するさまざまな方法があります:

最初にクラスでプログラムを作成します。これはJavaの場合と同じです。静的のようにインスタンス化せずにうまく機能するため、オブジェクトを使用します。SBTでコンパイルして実行するだけで、scala通訳REPL

このオブジェクトはREPLで使用できます

scala>  object Hello {
     |   def main(args:Array[String]) {
     |     println("Hello, Scala !!")
     |   }
     | }
defined object Hello

scala> Hello.main(Array("onlyforwork"))
Hello, Scala !!

アクティベーター/ SBTを使用してコンパイルして実行する

> compile
[info] Compiling 1 Scala source to /home/anquegi/Dev/StackOverFlow/scalaStack/target/scala-2.11/classes...
[success] Total time: 2 s, completed 13/04/2015 11:29:42
> run
[warn] Multiple main classes detected.  Run 'show discoveredMainClasses' to see the list

Multiple main classes detected, select one to run:

 [1] org.example.Hello
 [2] org.example.ScheduledTaskScala
 [3] question1.Ques
 [4] scriptworksheet.Hello

Enter number: 4

[info] Running scriptworksheet.Hello 
Hello, Scala !!
[success] Total time: 19 s, completed 13/04/2015 11:30:04

2つ目は、scalaコードをスクリプトまたはファイルHello.scalaとして追加すると、scalaコードを.scala拡張子の付いたファイルに保存できることです。 (基本的に任意のファイル拡張子を使用しますが、.scala拡張子を優先します)実行するには、ファイル名に拡張子をパラメーターとしてscala interpreter

/**
 * Created by anquegi on 13/04/15.
 */

println("Hello, Scala !!")

このファイルが実行されるscalaインタープリターを呼び出すと、オブジェクトやクラスをインスタンス化する必要はなく、シェルスクリプトのように実行するだけで、Intellijから直接実行することもできますが、私はコンソールを使用しますscalaがシステムにインストールされている

[anquegi@localhost scalaStack]$ scala src/main/scala/scriptworksheet/HelloScript.scala 
Hello, Scala !!

そして最後に、ワークシートが最も強力です。REPLのようなものをテストするのは簡単なので、仕事での生産性を高めるためにこれをお勧めします。scala式を評価し、結果

以下は、scalaワークシートに関する公式のgithubリポジトリwikiからの抜粋です

ワークシートは保存時に評価されるScalaファイルであり、各式の結果はプログラムの右側の列に表示されます。ワークシートはREPLステロイドに関するセッション、およびファーストクラスのエディターサポートをお楽しみください:完了、ハイパーリンク、入力時のインタラクティブエラー、自動フォーマットなど。

// We can define objects or classes and the worksheet
//will print the sesult of every expression
object Hello {
  def main(args:Array[String]) {
    println("Hello, Scala !!")
  }
}

println("Hello Scala")
val a = 4 + 5

結果

defined module Hello





Hello Scala
res0: Unit = ()
a: Int = 9

次に、Intellijでワークシートとスクリプトのコンソールをクラス分けして作業していることを示すキャプチャ

Capture working environment

10
anquegi

Scalaワークシート

Scala Interpreter(REPL)と同じですが、IntelliJ内で実行されます。いくつかの式を簡単かつ迅速に評価できます。チェック IntelliJ confluence 詳細については、ページをご覧ください。

Scalaスクリプト

Bashでスクリプトを作成したくない場合は、Scalaを使用して作成できます。ただシーケンスScalaステートメント

例:

import Java.nio.file.{Paths, Files}

val ScalaSource = "*.scala"
val Path = "path/to/necessary/folder"

val stream = Files.newDirectoryStream(Paths.get(Path), ScalaSource)

val paths = stream.iterator
while (paths.hasNext) {
  println(paths.next.getFileName)
}

それを実行する:

$ scala scala_script_name.scala

始めるには、これを手に取ってください ガイド

クラスとオブジェクト

Scalaクラスに似ています [〜#〜] pojo [〜#〜] およびScalaオブジェクトそれはa = Javaシングルトンクラス。

9
Anton Dozortsev