Scala快速开始

学习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环境变量中了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值