[官网文档翻译]Chapter1 Scala入门
2016-02-18 16:48
399 查看
原文链接
学习Scala的最佳方法取决于你已掌握的知识以及学习新知识的方式。有许多资源可以帮助你学习,比如图书,辅导手册,课程培训,教学演示,Scala编码实战等。许多人采用了一种很好的结合方式,那就是参考Scala众多图书中的一本并立刻投入到对自带Scala示例编译的尝试中去。然而,你或许也可以尝试从Scala培训课程或者在线资料开始你的学习。
随着Scala知识的丰富,你将会发现更高深的素材和一个十分友善的Scala社区将让你受益匪浅。他们对Scala抱有极大热忱,并热烈欢迎所有Scala新人。社区中的许多人已经著写了许多对Scala新人很有帮助的材料,他们将回复那些通过email寻求帮助的人,在众多论坛或个人博客上干练地分享新技术,新概念,新工具等。
coursera在线课程Scala 函数式程序设计原理,该课程由Scala缔造者Martin Odersky主讲。它需要你具有大学或相当水平知识以便传授你函数式编程的基础知识。通过完成其中的编程作业,你将学到很多Scala的知识。
Kojo是一个Scala交互式开发环境,它能带你探索,玩转数学,艺术,音乐,动画和游戏。
object HelloWorld{
def main(args:Array[String]):Unit={
println(“Hello,World!”)
}
}
这个程序的结构应该会Java程序员觉得熟悉:它包含了main方法,这个方法用于打印一个友善的问候到标准输出界面。
我们假定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
快捷键
>scalac HelloWorld.scala
>scala -d classes HelloWorld.scala
>scala HelloWorld
>scala -cp classes HelloWorld
下面展示“Hello,World”如何像
object HelloWorld extends App{
println(“Hello,World!”)
}
bash脚本
#!/bin/sh
exec scala “0""@”
!#
object HelloWorld extends App {
println(“Hello, world!”)
}
HelloWorld.main(args)
这个脚本可以直接在命令行shell中运行:
>./script.sh
注释:在这里,我们假定
学习Scala的最佳方法取决于你已掌握的知识以及学习新知识的方式。有许多资源可以帮助你学习,比如图书,辅导手册,课程培训,教学演示,Scala编码实战等。许多人采用了一种很好的结合方式,那就是参考Scala众多图书中的一本并立刻投入到对自带Scala示例编译的尝试中去。然而,你或许也可以尝试从Scala培训课程或者在线资料开始你的学习。
随着Scala知识的丰富,你将会发现更高深的素材和一个十分友善的Scala社区将让你受益匪浅。他们对Scala抱有极大热忱,并热烈欢迎所有Scala新人。社区中的许多人已经著写了许多对Scala新人很有帮助的材料,他们将回复那些通过email寻求帮助的人,在众多论坛或个人博客上干练地分享新技术,新概念,新工具等。
写给Scala初学者
如果仅仅想开始学习编码,那么你将发现市面上一大部分Scala学习材料都假定你已经具有足够的编程经验了。这里我们为初学者推荐两份非常实用的资源,它们将能迅速带你融入Scala的世界:coursera在线课程Scala 函数式程序设计原理,该课程由Scala缔造者Martin Odersky主讲。它需要你具有大学或相当水平知识以便传授你函数式编程的基础知识。通过完成其中的编程作业,你将学到很多Scala的知识。
Kojo是一个Scala交互式开发环境,它能带你探索,玩转数学,艺术,音乐,动画和游戏。
你的第一行代码
程序“Hello,World”
作为第一个例子,我们采用标准的”Hello,World!”程序来演示在不需要对Scala语言有具体了解情况下的应用方式。object HelloWorld{
def main(args:Array[String]):Unit={
println(“Hello,World!”)
}
}
这个程序的结构应该会Java程序员觉得熟悉:它包含了main方法,这个方法用于打印一个友善的问候到标准输出界面。
我们假定Scala软件和用户环境已经正确地安装和搭建起来了。例如:
环境 | 变量 | 变量值(示例) |
---|---|---|
Unix | $SCALA_HOME | /usr/local/share/scala |
Unix | \$PATH | \$PATH:$SCALA_HOME/bin |
Windows | %SCALA_HOME% | c:\Progra~1\Scala |
Windows | %PATH% | %PATH%;%SCALA_HOME%\bin |
交互式执行
Scala命令可以在交互式shell中启动,在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编译器的工作模式类似于Java SDK的Java编译器中的命令
javac。
>scalac HelloWorld.scala
javac默认地在当前工作目录下生成class文件。你也可以通过使用
-d选项指定一个不同的输出路径。
>scala -d classes HelloWorld.scala
运行
scala命令可以通过辅以合适的选项运行被编译器编译生成的二进制文件:
>scala HelloWorld
scala允许我们指定命令参数,比如参数
-classpath(别名
-cp):
>scala -cp classes HelloWorld
scala命令参数必须是最高层级的对象。如果某对象继承了
App特质,那么这个对象内的所有声明都将被运行;否则,你不得不增加一个
main方法作为程序的入口。
下面展示“Hello,World”如何像
App特质一样运行:
object HelloWorld extends App{
println(“Hello,World!”)
}
脚本化
我们同样可以作为shell脚本或batch命令运行我们的示例(详见scala命令主页示例)
bash脚本
script.sh包含以下Scala代码
#!/bin/sh
exec scala “0""@”
!#
object HelloWorld extends App {
println(“Hello, world!”)
}
HelloWorld.main(args)
这个脚本可以直接在命令行shell中运行:
>./script.sh
注释:在这里,我们假定
script.sh具有执行权限,并能在
PATH环境变量中指定
scala命令的搜索路径。
相关文章推荐
- Windows下Scala环境搭建
- ASP编码必备的8条原则
- C#生成Word文档代码示例
- 如何使用C#从word文档中提取图片
- XML指南——XML编码
- C#中字符串编码处理
- ExtJS中文乱码之GBK格式编码解决方案及代码
- 程序员趣味读物 谈谈Unicode编码
- 文本文件编码方式区别
- jQuery窗口、文档、网页各种高度的精确理解
- C语言安全编码之数值中的sizeof操作符
- C#实现获取文本文件的编码的一个类(区分GB2312和UTF8)
- VC中BASE64编码和解码使用详解
- 计算机中的字符串编码、乱码、BOM等问题详解
- 比较全的一个C#操作word文档示例
- Base64编码解码原理及C#编程实例
- C#编码好习惯小结
- javascript编码的几个方法详细介绍
- UTF8编码开发中页面空白问题的解决方法
- php生成固定长度纯数字编码的方法