Scala 深入浅出实战经典 第47讲:Scala多重界定代码实战及其在Spark中的应用

时间:2021-07-03 18:26:19

王家林亲授《DT大数据梦工厂》大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频、PPT、代码下载:
百度云盘:http://pan.baidu.com/s/1c0noOt6
腾讯微云:http://url.cn/TnGbdC
360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2
技术爱好者尤其是大数据爱好者 可以加DT大数据梦工厂的qq群

DT大数据梦工厂① :462923555
DT大数据梦工厂②:437123764
DT大数据梦工厂③ :418110145

微信公众账号: DT_Spark
王家林老师微信号: 18610086859
王家林老师QQ: 1740415547
王家林老师邮箱: 18610086859@126.com

本视频由王家林老师, 亲自讲解, 完全通过代码实战把您带人大数据的时代.

package com.parllay.scala.type_parameterizitor

/**
* Created by richard on 15-7-31.
* 第47讲:Scala多重界定代码实战及其在Spark中的应用
*/ class M_A[Int]
class M_B[Int] object Mutiple_Bound { def main(args: Array[String]) { /**
* 多重上下文界定. 如果以下两行代码注释掉,那么不能正常运行.
* 因为不存在M_A[T] 这样的隐式值.
*
* 不能同时有多个上界或者多个下界,可以同时有上届和下界;
* 必须为 Lower是T的下界, Upper是T的上界, 而且Lower必须是Upper的子类型
* T >: Lower <: Upper
*
* 一个类型可以同时实现多个特质
* T <: Comparable[T] with Serializable with Clonable
*
* 可以有多个视图界定, T必须同时满足能够隐式转换为Comparable[T] 和String 的要求
* T <% Comparable[T] <% String
*
* 可以有多个上下文界定, T必须同时满足有Ordering[T], Manifest[T]隐式值.
* T : Ordering : Manifest
*
* @param i
* @tparam T
*/
//implicit val a = new M_A[Int]
//implicit val b = new M_B[Int]
def foo[T: M_A : M_B](i : T) = println(i) println(foo(2)) } }