Scala 3 — 書籍

你好,世界!

語言

提示:在下列範例中,請嘗試選擇您偏好的 Scala 版本。

您的第一個 Scala 程式

Scala 的「你好,世界!」範例如下。首先,將此程式碼放入名為 hello.scala 的檔案中

object hello {
  def main(args: Array[String]) = {
    println("Hello, World!")
  }
}

在此程式碼中,我們定義了一個名為 main 的方法,在一個名為 hello 的 Scala object 中。Scala 中的 object 類似於 class,但定義了一個您可以傳遞的單例實例。 main 接收一個名為 args 的輸入參數,必須鍵入為 Array[String],(現在先忽略 args)。

@main def hello() = println("Hello, World!")

在此程式碼中,hello 是一個方法。它使用 def 定義,並使用 @main 註解宣告為「main」方法。它使用 println 方法將 "Hello, World!" 字串列印到標準輸出 (STDOUT)。

接著,使用 scalac 編譯程式碼

$ scalac hello.scala

如果您從 Java 轉換到 Scala,scalac 就如同 javac,因此該指令會建立多個檔案

$ ls -1
hello$.class
hello.class
hello.scala
$ ls -1
hello$package$.class
hello$package.class
hello$package.tasty
hello.scala
hello.class
hello.tasty

與 Java 相同,.class 檔案是位元組碼檔案,且已準備好在 JVM 中執行。

現在,您可以使用 scala 指令執行 hello 方法

$ scala hello
Hello, World!

假設執行成功,恭喜您,您剛剛編譯並執行您的第一個 Scala 應用程式。

有關 sbt 和其他讓 Scala 開發更輕鬆的工具的更多資訊,請參閱 Scala 工具 章節。

要求使用者輸入

在我們的下一個範例中,讓我們在向使用者問候之前詢問使用者的姓名!

有許多方法可以從命令列讀取輸入,但一個簡單的方法是使用 scala.io.StdIn 物件中的 readLine 方法。若要使用它,您需要先匯入它,如下所示

import scala.io.StdIn.readLine

為了展示其運作方式,讓我們建立一個小範例。將此原始碼放入名為 helloInteractive.scala 的檔案中

import scala.io.StdIn.readLine

object helloInteractive {

  def main(args: Array[String]) = {
    println("Please enter your name:")
    val name = readLine()

    println("Hello, " + name + "!")
  }

}
import scala.io.StdIn.readLine

@main def helloInteractive() =
  println("Please enter your name:")
  val name = readLine()

  println("Hello, " + name + "!")

在此程式碼中,我們將 readLine 的結果儲存到名為 name 的變數中,然後我們使用字串上的 + 算子將 "Hello, "name"!" 結合,形成一個單一的字串值。

您可以透過閱讀 變數和資料類型,進一步了解如何使用 val

接著,使用 scalac 編譯程式碼

$ scalac helloInteractive.scala

然後使用 scala helloInteractive 執行它,這次程式會在詢問您的姓名後暫停,並等到您輸入姓名並按下鍵盤上的 Enter 鍵,如下所示

$ scala helloInteractive
Please enter your name:
▌

當您在提示中輸入您的姓名時,最後的互動應如下所示

$ scala helloInteractive
Please enter your name:
Alvin Alexander
Hello, Alvin Alexander!

關於匯入的注意事項

正如您在這個應用程式中所見,有時某些方法或我們稍後會看到的其他類型的定義,除非您使用 import 子句,否則無法使用

import scala.io.StdIn.readLine

匯入有助於您以幾種方式撰寫程式碼

  • 您可以將程式碼放入多個檔案中,以避免雜亂並協助瀏覽大型專案。
  • 您可以使用程式碼庫,也許是由其他人撰寫的,其中具有有用的功能
  • 您可以知道某個定義來自何處(特別是如果它不是寫在目前的檔案中)。

此頁面的貢獻者