zoukankan      html  css  js  c++  java
  • 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 }

    结果:

  • 相关阅读:
    ZJOI2017
    李超线段树
    单调性优化dp
    ZJOI2018 树
    【ZJOI2017】汉诺塔
    暂存
    聚类的方法(层次聚类,K-means聚类)
    哈希表(散列表)
    多路查找树B树
    二叉排序树
  • 原文地址:https://www.cnblogs.com/yszd/p/10011079.html
Copyright © 2011-2022 走看看