1、常量和变量
val声明出来的为常量,不能再次赋值;可以省略类型,scala会自动推导。
var声明出来的为变量,可以再次赋值;可以省略类型,scala会自动推导。
var a = "xxx"; 等同于 var a : String = "xxx";
a = "String 2";
val b = 2;
b = 3; // 会出错
声明多个变量:
val a, b = "xxx"; // a, b的值都是 "xxx"
2、scala的常用数据类型:
Byte:内置转换为scala.runtime.RichByte
Char:内置转换为scala.runtime.RichChar
Short:内置转换为
Int:内置转换为scala.runtime.RichInt
Long:内置转换为scala.runtime.RichLong
Float:内置转换为scala.runtime.RichFloat
Double:内置转换为scala.runtime.RichDouble
Boolean:内置转换为scala.runtime.RichBoolean
这些类型都是类,Scala并不区分基本类型与引用类型。
与java基本类型相对应,但拥有更多的方法,因为会转换为相应的RichXxxx,在转换后的类里添加scala语言层面的方法。
例如:
1.toLong,其中1会被转换为RichInt类型的实例。
1.to(5)会产生Range(1, 2, 3, 4, 5)
任意有穷数字:
BigInt:
BigDecimal:
3、类型转换
使用方法,没有强制转换一说。
如:var a : Int = 1
var b : Long = a.toLong
4、操作符重载
val value = 8 + 5
其中,+ 这些操作是方法。
完整的是val value = (8).+(5);
(8)转换成Int对象,调用Int对象的+方法(方法名为+)。
5、Scala方法调用的简略写法
方法的简略写法:
a 方法 b
完整写
a.方法(b)
例:1.to(2),可简略写为1 to 2