Scala泛型

Scala泛型详解
 1 package big.data.analyse.dataSet
 2 
 3 import scala.reflect.ClassTag
 4 
 5 /**
 6   * 泛型
 7   * Created by zhen on 2018/11/24.
 8   */
 9 class Triple[F : ClassTag, S , T](val first : F, val second : S, val third : T)
10 /**
11   * 泛型类型限定
12   */
13 class Pair[T <: Comparable[T]](val left : T, val right : T){
14   def bigger = if(left.compareTo(right) > 0) left else right
15 }
16 object Genericity {
17   def main(args: Array[String]) {
18     // 不显式指明泛型类型,使用类型推导
19     val triple = new Triple("Spark", 6, 2.5)
20     // 显式指明泛型类型
21     val tagTriple = new Triple[String, Int, Double]("Python",12, 3.6)
22 
23     //定义方法
24     def getData[T](list : List[T]) = list.mkString
25     println(getData(List("I ", "like ", "Spark")))
26     // 高阶函数
27     val function = getData[String] _
28     println(function(List("Python ", "also ", "powerful")))
29     //测试泛型限定
30     val pair = new Pair("Spark" ,"Python")
31     println(pair.bigger)
32   }
33 }

结果:

 

转载于:https://www.cnblogs.com/yszd/p/10011079.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值