一、Scala解析器
安装Scala
scala-2.10.4.msi
进入命令行窗口
cmd
输入scala
命令操作:
8 * 5 + 2 的结果被命名为res0,在后续操作中可以使用这个名称;
0.5 * res0 使用之前的计算结果常量名参与运算;
"Hello," + res0 显示结果为String类型;
res2.to + tab键 显示补全命令;
res2.toUpperCase 将res2字符串转化为大写;
二、声明值和变量
val 常量,值不可改变
var 变量,值可以改变
res0,res1这些自动生成的名称,是val,值也不可改变
var str:String = "hello"
var str, message:String = null
str,message都初始化为null
声明值(val)或变量(var)需要初始化,不然会报错。
scala根据初始化推断数据类型。
当然也可以手动指定类型 变量名:数据类型
val str:String = "hello"
三、常用类型
数据类型 | 描述 |
---|---|
Byte | 8位有符号补码整数。数值区间为 -128 到 127 |
Short | 16位有符号补码整数。数值区间为 -32768 到 32767 |
Int | 32位有符号补码整数。数值区间为 -2147483648 到 2147483647 |
Long | 64位有符号补码整数。数值区间为 -9223372036854775808 到 9223372036854775807 |
Float | 32位IEEE754单精度浮点数 |
Double | 64位IEEE754单精度浮点数 |
Char | 16位无符号Unicode字符, 区间值为 U+0000 到 U+FFFF |
String | 字符序列 |
Boolean | true或false |
Unit | 表示无值,和其他语言中void等同。用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成()。 |
Null | null 或空引用 |
Nothing | Nothing类型在Scala的类层级的最低端;它是任何其他类型的子类型。 |
Any | Any是所有其他类的超类 |
AnyRef | AnyRef类是Scala里所有引用类(reference class)的基类 |
1.to(10)
1.toString()
四、算术和操作符重载
+-*/%等操作符实际是方法;
a 方法 b => a.方法(b)
a + b 简写为 a.+(b)
1 to 10 1.to(10)
counter+=1 scala没有++
五、调用函数和方法
import scala.math._ 等价于
import math._ 其中scala可以省略,_字符是通配符,类似于java中的*
pow(2,4)
没有参数且不改变当前对象的方法不带圆括号
"Hello".distinct
六、apply方法
def apply(n: int) : Char
"Hello".(4) 是 "Hello".apply(4) 的简写
七、Scaladoc
在线API文档 2.11.4版本 :http://www.scala-lang.org/api/2.11.4/#package
类(C),伴生对象(O)
数学函数位于:scala.math包中
1.
2.
3.
4.
http://www.scala-lang.org/api/current/scala/collection/immutable/StringOps.html
搜索StringOps
5.
Int RichInt
6.
7.
scala.util.Random
8.
9.
take, takeRight
10.
参考《快学Scala》