scala学习之:Scala类型约束

来源:互联网 发布:虚拟社交网络的优点 编辑:程序博客网 时间:2024/06/04 20:07
 Scala的类型约束实战代码及在Spark中的应用
          类型约束的语法:     A =:= B 表示A与B同类型 , A <:< B 表示A为B的子类
     示例代码:
          def rocky[T](i:T)(implicit ev : T <:< java.io.Serializable  ){
               println("Life is Short , you need Spark")
           }
          rocky("SPark")

          //rocky(30)

Scala中Variance代码实战及其在Spark的应用(协变与逆变)

           Variance: 形变。
           A是B的子类,它可以发生形变。
           如果List[A]是List[B]的子类。叫做协变; 如果List[B]是List[A]的子类。叫做逆变;
     示例代码:
          class Human
class Coder extends Human
class C [+T](val args : T) // + :协变
trait Friend[-T]{
  def makeFriend(somebody : T )
}
object HelloVariance {
  def makeFriendWithYou(c : Coder , f : Friend[Coder]){f.makeFriend(c)}
  def main(args: Array[String]): Unit = {
    val value : C[Human] = new C[Coder](new Coder)
  } 
}     


以上内容是从王家林老师DT大数据课程第48、49讲的学习笔记。
DT大数据微信公众账号:DT_Spark  
王家林老师QQ:1740415547 
王家林老师微信号:18610086859
百度云盘地址:http://pan.baidu.com/s/1i3gYqqh
优酷播放地址:http://v.youku.com/v_show/id_XMTI4MjEwNTU2OA==.html
51cto的播放地址:http://edu.51cto.com/lesson/id-67881.html
0 0
原创粉丝点击