Scala泛型
Posted yszd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 }
结果:
以上是关于Scala泛型的主要内容,如果未能解决你的问题,请参考以下文章