scala的泛型1.1

19 阅读1分钟

(一)泛型的概念

泛型的定义为:参数化类型,即所有操作的数据类型被指定为一个参数。

基础代码:

package fx
/**
 * 两个函数长得一样!!!只有参数的类型不同
 *
 * 定一个名为getMiddle方法,用来获取输入列表中的中间位置上的元素
 *
 * 1  2  3  4  5  6  7
 *
 *
 * */
object fx01 {
  def getMiddle(arr:Array[Int]):Int = {
    arr(arr.length/2)
  }

  def getMiddle1(arr:Array[String]):String = {
    arr(arr.length/2)
  }

  def main(args: Array[String]): Unit = {
    val arr1 = Array(1,2,3,4,5,6,7)
    println(s"arr1的中间元素是:${getMiddle(arr1)}")

    val arr2 = Array("a","b","c")
    println(s"arr2的中间元素是:${getMiddle1(arr2)}")

    // val arr3 = Array(1.1,2.2,3.3)
  }
}

image.png

package fx
/**
 * 两个函数长得一样!!!只有参数的类型不同
 *
 * 定一个名为getMiddle方法,用来获取输入列表中的中间位置上的元素
 *
 * 1  2  3  4  5  6  7
 *
 *
 * */
object fx01 {
  def getMiddle[T](arr:Array[T]): T = {
    arr(arr.length/2)
  }

  // def getMiddle(arr:Array[String]):String = {
  //  arr(arr.length/2)
  // }

  def main(args: Array[String]): Unit = {
    val arr1 = Array(1,2,3,4,5,6,7)
    println(s"arr1的中间元素是:${getMiddle[Int](arr1)}")

    val arr2 = Array("a","b","c")
    println(s"arr2的中间元素是:${getMiddle[String](arr2)}")

    val arr3 = Array(1.1,2.2,3.3)
    println(s"arr3的中间元素是:${getMiddle[Double](arr3)}")
  }
}

在Scala中,用[]表示(在java中使用<>)。 泛型是对数据的类型的约束!