Scala语言学习笔记一
Posted 奇点
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scala语言学习笔记一相关的知识,希望对你有一定的参考价值。
Scala是一门小众的语言,但是作者因为工作原因要以Spark作为工作中的一个重心,而Spark采用了Scala语言编写,于是萌生了认真学习Scala的念头,在学习Scala中产生了这篇Scala学习笔记,但是Scala发展之快远远超过了作者的想象。也是和Spark的迅速普及离不开关系,因此作者重新整理了Scala学习笔记,加入了Scala新的特性,希望能够对大家有所帮助,因为时间有限,能力有限,有描述不准确的地方欢迎各位指正。
1 基础使用
1.1 Scala解释器安装
安装后确保环境变量中可以直接访问到scala ,验证方法是直接执行
$ scala
如果进入scala交互界面则配置正确,否则检查$PATH变量,如果采用了brew安装,可以用
$ brew install scala
来进行安装,我这里采用的版本是Scala-2.11.x版本
1.2 常量使用
scala> 2 * 3 + 4
res0: Int = 10
计算结果会被保存到 res0 当中,可以继续使用res0来进行运算
scala> 0.5 * res0
res1: Double = 5.0
类型支持自动转换,如果手工调用方法可以使用Tab键,这也是scala交互式学习的优势
scala> res1.to[Tab]
Scala的解释过程实际上是把代码转换成字节码,然后由Java虚拟机执行。一般被称作“REPL”
1.3 常量、变量声明
scala> val number = 0
声明之后 number 的值不可改变,一般会用一些有意义的名称来代替 res值来使用
scala> var counter = 1
scala> var counter = 2
使用var可以声明变量
无论常量和变量都可以指定类型
val hello: String = null
val world: Any = “Hello"
1.4 常用类型
Scala支持其中数值类型: Byte、Char、Short、Int、Long、Float、Double ,和Java一样,还支持Boolean
1.5 函数调用方法
函数通过import导入,例如导入数学函数
scala> import scala,math._ //_是Scala的通配符,类似Java的*
1.6 函数参考
http://www.scala-lang.org/api/2.11.8/#package
2 控制结构和函数
2.1 if条件表达式
Scala的if表达式和Java类似,但是Scala的if/else表达式可以跟着值,也可以赋值给变量
scala> val number = if( x > 0 ) 1 else -1
2.2 输入输出
Scala输出可以使用 print() println() printf() , println和print的区别就是会在打印之后增加一个换行符
printf类似C风格。
scala> printf("Hello , %s !\n", "wilson")
输入使用readLine ,可以带一个参数作为提示符
scala> val name = readLine(“Input your name: ”)
2.3 循环
Scala的for循环比较特殊没有c的(i=0;i<10;i++)的方式,但是Scala 有特殊的for 写法
for ( i <- 表达式 )
scala > for ( i <- 1 to 10 )
| j = j + i
还有更高级的写法
scala > for ( i <- 1 to 3; j <- 1 to 3 ) print (( 10 * i + j ) + " " )
// 11 12 13 21 22 23 31 32 33
还可以生成推导式
scala > for ( i <- 1 to 10 ) yield i % 3
//集合 Vector(1, 2, 0, 1, 2, 0, 1, 2, 0, 1)
Scala 还支持while 和 do循环,写法如下:
scala > while ( n > 1 )
| n -= 1
2.4 函数
Scala 除了方法之外还可以支持函数,方法和函数的区别在于,方法可以对对象进行操作,函数不是。java里只能用静态方法来进行模拟。
函数定义举例:def abs(x: Double) = if ( x >=0 ) x else -x
特别注意的是递归函数,必须要指定返回类型,否则编译器无法校验
def fac(n: Int): Int = if ( n <= 0 ) 1 else n * fac(n - 1)
关注大数据尖端技术发展,关注奇点大数据
以上是关于Scala语言学习笔记一的主要内容,如果未能解决你的问题,请参考以下文章