1.scala中没有static,所有object默认都是单例的,其方法都是静态的
apply方法是默认括弧方法
2.并行化集合
val list = List(1,2,3,4,5)
val s= list.par.fold(100)(_+_)
s可能是115,也可能是215,因为是并行化执行的,100会被执行并行化次数
但是如果是 foldLeft,那么100只会被加一次
3.Trait
相当于java中的interface
有一个混入功能,studnt这个对象会有ScalaTrait的属性
val student = new Student with ScalaTrait{
override def hello(name: String): Unit ={
println(name)
}
}
type可以理解成泛型
trait Fly {
type T
def learn(s:T): Unit ={
println(s)
}
}
object Fly1 extends Fly {
type T = String
def main(args: Array[String]): Unit = {
Fly1.learn("f")
}
}
模式匹配