Scala深入浅出进阶经典 第42讲:Scala中泛型类、泛型函数、泛型在Spark中的广泛应用

package com.dt.scalaInAction.demo_042

import scala.reflect.ClassTag

/**
 * 定义一个泛型类 []中定义的就是未知的类型 只有赋值使用时才能确定具体的类型
 */
class Triple[X: ClassTag, Y, Z](val first: X, val second: Y, val thrid: Z)

/**
 * Scala中泛型类、泛型函数、泛型在Spark中的广泛应用
 */
object Hello_Type_Parameterization {
    def main(args: Array[String]): Unit = {
        //在定义后scala的类型推断会得出triple类型为 Triple[String, Int, Double]
        val triple = new Triple("Spark", 3, 3.1415926)
        //显示声明类型
        val bigData = new Triple[String, String, Char]("Spark", "Hadoop", 'R')
    
    
        //定义泛型函数
        def getData[T](list: List[T]) = list(list.length / 2)
        println(getData(List("Spark", "Hadoop", 'R')))  //Hadoop

        val f = getData[Int] _  //显式指定类型    //val f: List[Int] => Int
        println(f(List(1,2,3,4,5,6,7,8))) //5
        
        
        def foo[A, B](f: A => List[A], b: A) = f(b)
    }
}


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值