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

package com.dt.scalaInAction.demo_047

class M_A[T]
class M_B[T]

/**
 * Scala多重界定代码实战及其在Spark中的应用源码解析
 *  
 * T <: A with B
 * T是A或者B的子类
 * 
 * T >: A with B
 * A或者B是T的子类
 * 
 * T >: A <: B (写法上 下界必须写在前面 上界必须写在后面)
 * T同时拥有下界A和上界B(A必为B的子类型) 但T不能同时拥有多个上界或多个下界
 * 
 * T : A : B(上下文界定)
 * 
 * 
 * T <% A <% B(视图界定)  T必须能够同时转化为A和B的要求
 * T可以<同时>拥有多个视图界定
 * T可以通过"隐式转换"为A 也可以"隐式转换"为B
 * 
 */
object Multiple_Bounds {
    def main(args: Array[String]): Unit = {
        implicit val a = new M_A[Int]
    		implicit val b = new M_B[Int]
        def foo[T : M_A : M_B](i: T) = println("Run")
        
        foo(2)
        
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值