Scala学习笔记
Scala 没有 ++ 操作,只能 +=
使用以Scala.开头的包时,可以省去Scala前缀。如:import math. 等同于 Scala.math.
不带参数的Scala方法通常不适用圆括号,如:”Hello”.distinct
常量声明:val , 变量声明:var
在Scala中,建议使用val—除非真的需要改变它的内容
Scala没有switch语句
避免在函数定义中使用return
在Scala中,赋值动作本身是没有值的–或者,更严格的说,他们的值是Unit类型的。如:{ r = r * n; n -= 1 } 的值是Unit类型的
遍历字符串或者数组时,通常需要使用从0到n-1的区间,这个时候可以使用util方法,而不是to方法。util方法返回一个并不包含上限的区间。如:
for (i <- 0 util “Hello”.length) i的最后一个取值是.length-1
Scala并没有提供break或者continue语句来退出循环,我们需要使用Boolean行的控制变量,或者使用Breaks对象中的break方法,或者潜逃函数当中return
Scala类的字段生成的getter和setter方法说明:
如果字段是private的,生成的getter和setter方法也是private的
如果字段是val类型,则只生成getter方法
如果字段是var类型,则会生成getter和setter方法
如果不需要任何getter和setter方法,可以将字段声明为private[this]Scala类的字段编译后都是private的
object 没有 构造器参数
重写限制:
def 只能重写另一个def
val 只能重写另一个val或不带参数的def
var 只能重写另外一个抽象的var抽象类
没有方法体的方法是抽象方法,需要子类进行实现子类重写父类的抽象方法时,不需要使用override关键字
如果类中,有一个方法没有方法体,则类必须定义为abstractScala特质中未被实现的方法默认都是抽象的,不用添加abstract关键字
Scala特质中不能使用构造器参数,即每个特质都有一个无参数的构造器