6、trait特质、包别名、文件、private[this]

trait 类似java接口,scala中extends继承with多个类或接口

自身类型

trait A{
  this:B =>  //约束当前trait只能由哪些类实现
}
class B extends A{
}

class C extends A{  //错误
}

包命名别名防止冲突

import scala.collection.mutable.{Map => MMap}

scala.io.Source.fromURL("https://www.cnblogs.com/")  网络

scala.io.Source.fromFile("/1.txt")  本地

private[this] 进一步限定变量使用范围

class B {
  private[this] var v = 0
  def this(v:Int)={
    this()
    this.v = v
  }
  def bijiao(b:B)={
    this.v > b.v  //此处报错,此处的b不能访问到v;去掉[this]即可
  }
}
渐变 --> 突变
原文地址:https://www.cnblogs.com/lybpy/p/9737462.html