第一章Scala语法介绍
1.1阅读说明
本文档针对scala2.10.x,由于scala目前发展迅速,因此可能会和其他版本的不同。
本手册适合对象:有Java编程经验的程序员。阅读时如果发现难以理解,可以根据关键词自行上网搜索对应内容进行辅助学习。
*标注的小节,表示阅读优先级较低或者可以不用阅读。
阅读时遵循先易后难得准则,从有代码示例的地方着手会比较简单。
1.2第一个scala程序
参考:/documentation/getting-started.html
object ScalaTest{
def main(args:Array[String]){
println("hello scala.")
}
}
1.2.1scala解释器
安装好scala并配置好PATH环境变量之后,就可以在终端中输入“scala”命令打开scala 解释器。在其中,你可以像使用shell一样,使用TAB补全、Ctrl+r搜索、上下方向键切换历史命令等等。退出scala解释器,可以使用命令:“:q”或者“:quit”。
由于解释器是输入一句执行一句,因此也常称为REPL。REPL一次只能看到一行代码,因此如果你要在其中粘贴代码段的话,可能会出现问题,这时你可以使用粘贴模式,键入如下语句:
:paste
然后把代码粘贴进去,再按下Ctrl+d,这样REPL就会把代码段当作一个整体来分析。
1.2.2scala作为脚本运行
scala代码也可以作为脚本运行,只要你设置好代码文件的shell前导词(preamble),并将代码文件设置为可执行。如下:
#!/usr/bin/env scala
println("这是scala脚本")
设置代码文件为可执行,即可执行。
scala脚本的命令行参数保存在名为args的数组中,你可以使用args获取命令行输入的程序参数:
hello.scala文件中:println("hello,"+args(0))
在命令行中执行:scala hello.scala vitohuang
1.2.3scala编译运行
scala编译器scalac会将scala代码编译为jvm可以运行的字节码,然后就可以在jvm上执行了。假设有一个Hello.scala文件,我们就可以使用scalac Hello.scala编译,然后使用scala Hello运行。当然也可以使用java工具来运行,但需要在classpath里指定scala-library.jar。对于classpath,在Unix家族的系统上,类路径的各个项目由冒号“:”分隔,在MS Windows系统上,它们由分号“;”分隔。例如,在linux上你可以输入这样的命令来运行(注意classpath最后加一个“.”):
java-classpath/usr/local/scala-2.10.4/lib/scala-library.jar:.Hello
1.3Scala开发环境
1.3.1Scala下载安装的三种方法
/download/
1.3.1.1Win8下配置Scala系统环境
1.下载Scala
2.9.2
由于最新的Scala2.10稳定版还没完成,所以最好是下载最新的Scala稳定版:2.9.2版。(2015年3月),注意对应的版本必须是1.6或1.7。
下载地址:/downloads/distrib/files/scala-2.9.2.msi
下载msi版本的好处在于,环境变量自动配置,否则你需要手动设置两个环境变量:SCALA_HOME环境变量,指向Scala的安装目录。
PATH环境变量,要包含%SCALA_HOME%\bin的值。
2.安装Scala2.9.2
下载完成后,执行scala-2.9.2.msi,按提示一步步安装。我安装在C:\scala这里。
3.验证
按下Windows键+R键,输入CMD,回车后进入WindowsCMD命令行模式。
键入命令:
复制代码代码如下:
scala-version
显式结果如下:
说明Scala安装和工作均正常!
Spark调研报告1.3.2scala IDE开发环境
你可以使用eclipse或者intellij idea作为scala的IDE开发环境,但都需要安装scala 插件才行。下面分别介绍这两种方式:
1.3.
2.1eclipse开发环境配置
scala ide for eclipse(下载地址:)中集成了scala插件,你可以直接使用它进行开发,不过它包含的可能不是我们想要的scala版本,因此,还是在该网站上下载对应的scala插件,插在eclipse上,这样更好啊。
我们先安装eclipse juno,然后下载eclipse juno以及scala2.10.4对应的scala sdk插件升级包:update-site.zip。将插件解压缩,将features和plugins目录下的所有东东都复制到eclipse 中的对应目录中,重启eclipse即可。然后就可以新建scala project了。
1.3.
2.2intellij idea开发环境配置
我们先安装好intellij idea,然后安装scala插件,自动安装插件有时会非常慢,尤其是在china。我们还是手动配置插件吧。请注意插件的版本,必须与当前idea版本兼容。手动配置插件方法如下:
(1)进入setting>plugins>browse repositorits搜索你要下载的插件名称,右侧可以到下载地址。
(2)解压插件压缩包,把插件的全部文件都复制到IntelliJ IDEA安装程序的plugins文件夹中,注意插件最好以一个单独的文件夹放在plugins目录下。
(3)一般重启intellij idea就会自动加载插件,进入setting>plugins看看有木有。如果不自动加载的话,进入setting>plugins>install plugin from disk,到刚才复制的插件位置,再然后就好了。
接下来就可以新建scala project,新建时我选择的是“Scala”(不是sbt,因为我这选择sbt 之后,等半天sbt都不会配置好,郁闷啊)。
1.3.
2.3什么是SBT?
SBT=(not so)Simple Build Tool,是scala的构建工具,与java的maven地位相同。其设计宗旨是让简单的项目可以简单的配置,而复杂的项目可以复杂的配置。
1.4scala特点
在scala中,语句之后的“;”是可选的,这根据你的喜好。当有多个语句在同一行时,必须加上分号,但不建议把多个语句放在一行。
在scala中,建议使用2个空格作为代码缩进。
在scala中,符号“_”相当于java中的通配符“*”。
scala类似于c++、java,索引也是从0开始,但元组是个例外,它从1开始。java环境变量自动配置
Spark调研报告使用逗号分隔语句不被支持。
1.5变量定义
object Val extends App{
var ans:Int=1
ans+=1
println(ans)
}
1.5.1基本类型
scala有7种数值类型:Byte、Char、Short、Int、Long、Float和Double,以及2种非数值类型:Boolean和Unit(只有一个值“()”,相当于java和c++中的void,即空值)。这些类型都是抽象的final类(不能使用new新建,也不能被继承),在scala包中定义,是对java 基本数据类型的包装,因此与java基本数据类型
有相同的长度。同时,scala还提供了RichInt、RichChar等等,它们分别提供Int、Char等所不具备的便捷方法。
字符串
另外,scala沿用了java.lang包中的String。在scala中,常量也称作字面量,字符串字面量由双引号包含的字符组成,同时scala提供了另一种定义字符串常量的语法——原始字符串,它以三个双引号作为开始和结束,字符串内部可以包含无论何种任意字符。
类型转换
在scala中,我们使用方法,而不是强制类型转换,来做数值类型之间的转换,如Int、97.toChar。另外也可以参见显式类型转换和隐式转换。
1.5.2变量
scala有两种变量:val和var。val如同java中的final变量,var如同java中的非final 变量。由于scala是完全面向对象的,因此val和var只是声明了对象的引用是不可变的还是可变的,并不能说明引用指向的对象的可变性。声明变量的同时需要初始化之,否则该变量就是抽象的。如果不指定变量的类型,编译器会从初始化它的表达式中推断出其类型。当然你也可以在必要的时候指定其类型,但注意,在scala中变
量或函数的类型总是写在变量或函数的名称的后边。示例如下:
val answer=“yes”
val answer,message:String=“yes”
如图前者会报错,后者不会报错
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论