美文网首页Scala Tour
[译]Scala快速开始

[译]Scala快速开始

作者: steanxy | 来源:发表于2017-04-25 22:50 被阅读39次

学习Scala最好的方法取决于你已经会的东西以及你想学习的方式。有很多可供选择的资源,比如书籍,教程,培训课程,演示报告以及使用Scala编译器练习。很多人会找到一种组合方式,一方面准备一本Scala的书籍并且立即开始使用Scala编译器尝试示例。另一方面,你可能想要从Scala培训课程或者使用在线提供的资料开始。
随着你的Scala知识不断增长,你会发现有很多高阶资料和一个非常友好的Scala社区可以帮助你。他们都对Scala富有激情并且热烈欢迎新成员。很多人都为新接触Scala的程序员写了帮助资料,他们会在Scala论坛或个人博客中回复寻求帮助的邮件或者分享新技术、高阶概念或工具。

为编程初学者准备的Scala

如果你刚开始学习编程,你会发现大部分关于Scala的资料都假定你已经有一定的编程经验了。有两个很有价值的资源推荐给编程初学者,它们会带领你进入Scala的世界:

  • 在线课堂Functional Programming Principles in Scala,由Coursera提供。由Scala的创造者Martin Odersky授课,这个网络课堂采用一些学术方法教授函数式编程的基本原理。你会通过解决编程任务学到很多Scala知识。
  • Kojo是一个使用Scala编程来探索和玩数学,艺术,音乐,动画和游戏的交互式学习环境。

你的第一行代码

"Hello World!"程序

作为第一个示例,我们使用标准的"Hello World!"程序来说明在对很多语言知识不了解的情况下如何使用Scala工具。

object HelloWorld {
  def main(args: Array[String]): Unit = {
    println("Hello, world!")
  }
}

对Java程序员来说,这个程序的结构应该很熟悉,它包含了main函数,可以打印"Hello World!"到标准输出。
我们假设Scala软件和用户环境都已经正确设置好。例如:

环境 变量 值(示例)
Unix $SCALA_HOME /usr/local/share/scala
$PATH \$PATH:\$SCALA_HOME/bin
Windows %SCALA_HOME% c:\Progra~1\Scala
%PATH% %PATH%;%SCALA_HOME%\bin

交互式运行

Scala命令会启动一个交互式shell,在这里Scala表达式可以被交互式地解释执行。

> scala
This is a Scala shell.
Type in expressions to have them evaluated.
Type :help for more information.
scala> object HelloWorld {
    |   def main(args: Array[String]): Unit = {
    |     println("Hello, world!")
    |   }
    | }
defined module HelloWorld
scala> HelloWorld.main(Array())
Hello, world!
scala>:q
>

:q缩写代表内部shell命令:quit,用于退出解释器。

编译

scalac命令会编译一个(或多个)Scala源文件并且生成可以在任何标准JVM上执行的Java字节码。Scala编译器和javacJava SDK的编译器)的工作方式类似。

> scalac HelloWorld.scala

默认地,scalac生成class文件到当前的工作路径中。可以使用-d选项来指定一个不同的输出路径。

> scalac -d classes HelloWorld.scala

执行

scala会使用合适的选项来执行生成的字节码:

>scala HelloWorld

scala允许我们指定命令选项,如-classpath(也可写为-cp)选项:

>scala -cp classes HelloWorld

scala命令的参数必须是一个顶层对象。如果对象扩展了scala.App特征,那么所有包含在这个对象中的语句都会被执行,否则你必须添加一个main函数作为程序入口。
下面是使用App特征的"Hello, world!"程序:

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

脚本

我们可能也想让示例作为shell脚本或者批处理命令运行。
bash shell脚本script.sh包含下面的Scala代码:

#!/usr/bin/env scala
object HelloWorld extends App {
  println("Hello, world!")
}
HelloWorld.main(args)

可以直接使用shell命令执行:

> ./script.sh

注意:我们假设这里的script.sh文件有执行权限并且scala命令的搜索路径已经配置在PATH环境变量中了。


相关文章

  • [译]Scala快速开始

    学习Scala最好的方法取决于你已经会的东西以及你想学习的方式。有很多可供选择的资源,比如书籍,教程,培训课程,演...

  • 快速学习Scala之类

    快速学习Scala之类 从此处正式开始Scala学习之旅。 类的定义 字段的定义 // 在Scala中用val定义...

  • [译]Spark快速开始

    本文是一个如何使用Spark的简要教程。首先通过Spark的交互式Shell来介绍API(使用Python或Sca...

  • [译]Scala基础

    在浏览器中尝试Scala 你可以使用ScalaFiddle在浏览器中运行Scala。 访问https://scal...

  • [译]Scala介绍

    Scala是一种现代多范式编程语言,旨在以简介,优雅和类型安全的方式来表达公共编程模式。它集成了面向对象和函数式编...

  • [译]Scala类

    Scala中的类用于创建对象。类中可以包含方法,值,变量,类型,对象,特征以及类,统称为成员。类型,对象和特征稍后...

  • [译]Scala特征

    特征用于在类之间共享接口和字段。类似于Java 8的接口。类和对象可以扩展特征,但是特征不能实例化,因此也没有参数...

  • [译]Scala Currying

    方法可以定义多个参数列表。当调用方法时传递的参数列表少了,则将会产生一个函数,缺失的参数列表会作为这个函数的参数。...

  • 快速学习Scala之准备

    快速学习Scala之准备 Scala与Java的关系是非常紧密的,因为Scala是基于Java虚拟机的,也就是JV...

  • 从零开始学习Spark(二)Scala基础

    Scala基础 Spark的原生语言是Scala,因此入门一下Scala是学习Spark的第一步,下面就快速入门一...

网友评论

    本文标题:[译]Scala快速开始

    本文链接:https://www.haomeiwen.com/subject/toubzttx.html