数据类型:
只列出多出Java的。
Unit:表示无值,类似于void。
Nothing:Nothing类型在Scala的类层级的最低端;它是任何其他类型的子类型。
Any:Any是所有其他类的超类。
AnyRef:AnyRef类是Scala里所有引用类(reference class)的基类。
多行字符串,使用“““”””,如:
“““我是
多行
字符串”””
变量:
var声明变量。如:var a : String = "asd"
val声明常量。如:val b : String = "qwe"
或者不指明数据类型,会自动判断类型,var myVar = 10; val myVal = "Hello, Scala!"
访问修饰符:
(待定)
方法与函数:
Scala既有方法也有函数,二者在定义上的区别很小。
方法是类的一部分,跟Java类似。
函数是一个对象可以赋值给一个变量,其实就是继承了 Trait 的类的对象。
在类中定义的函数就是方法。
使用val语句可以定义函数,def语句定义方法。
方法的写法:
Java: int method(int a) { return a + 1; }
Scala: def method(a : Int) : Int = { return a + 1} (Unit相当于void) 如果不写等号及方法主体,则被隐式声明为抽象方法。
函数的写法:
Scala: val func = (a : Int, b : Int) => a + b
闭包:
var factor = 2
val func = (a: Int) => a * factor
定义这个函数func的过程是将这个自由变量factor捕获,而构建成封闭的函数。