Scala 3 — 书籍

你好,世界!

语言

提示:在以下示例中,尝试选择你首选的 Scala 版本。

你的第一个 Scala 程序

Scala 的“Hello, World!”示例如下。首先,将此代码放入名为 hello.scala 的文件中

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

在此代码中,我们在一个名为 hello 的 Scala object 中定义了一个名为 main 的方法。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 运行它,这次程序在询问您的姓名后将暂停,并等到您键入姓名并在键盘上按回车,如下所示

$ scala helloInteractive
Please enter your name:
▌

当您在提示符处输入您的姓名时,最终交互应如下所示

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

有关导入的说明

正如您在此应用程序中看到的那样,有时某些方法或我们稍后将看到的其他类型的定义不可用,除非您使用 import 子句,如下所示

import scala.io.StdIn.readLine

导入可以通过以下几种方式帮助您编写代码

  • 您可以将代码放入多个文件中,以避免杂乱,并帮助浏览大型项目。
  • 您可以使用代码库,可能是由其他人编写的,它具有有用的功能
  • 您可以知道某个定义来自哪里(特别是如果它不是在当前文件中编写的)。

此页面的贡献者