scala关键字


Scala 有 39 个关键字:

package, import, class, object, trait, extends, with, type, forSome private, protected, abstract, sealed, final, implicit, lazy, override try, catch, finally, throw
if, else, match, case, do, while, for, return, yield def, val, var
this, super new
true, false, null

Scala 中没有 break 和 continue 俩个关键字

with关键字

  1. Scala Trait 相当于 Java 的接口,但是比接口功能要强大。它可以定义属性和方法的实现;
  2. 类似Java接口,一个类可以实现多个接口一样,通过 with 关键字 Scala class 可以混入(相当于 实现)多个 trait;
  3. 当混入多个trait时,形如 class A extends B with C with D with E ,则 B、C、D、E 不能存在相同属性和方法;
  4. 实际上,可以用 trait 定义任何 class 可以做的事情,除了一点,不能有类参数定义即不能存在有参构造器。这一点上可以类比 object
  5. 形如:class A extends B with C with D with E ,可以 将 (B with C with D with E)看作一个整体(复合类型)来对待;
  6. 在Scala中可以通过 type关键字来定义复合类型,type X = B with C with D with E
trait T1 {
  val a = 1
}

trait T2 {
  val b = 2
}

abstract class B {
  val c = 33
}

class SubClass extends B with T1 with T2 {
  type X = B with T1 with T2

  def recombination(x: X): String = {
    x.toString
  }

  override def toString: String = {
    (a + b).toString
    //    super.toString
  }

}