scala的泛型

112 阅读1分钟

(一)泛型含义

泛型是对数据的类型的约束! 我们的学习内容包括:泛型方法,泛型类,泛型特质。

(二)泛型方法

泛型方法指的是:把泛型定义放在方法声明上。即:该方法的参数类型是由泛型来决定的。在调用方法时,明确具体的数据类型。

(三)泛型方法的格式

定义方法: def 方法名泛型名称1,泛型名称2,. . . = { } 调用方法: 方法名类型1,类型2, 如果在参数列表中可以推断出对应的类型,则可以省略方括号[类型1,类型2] 使用泛型方法来解决本课开头提出的问题。 【原】

package fx

object fx01 {

  def getMiddle_Int(arr:Array[Int]):Int ={
    arr(arr.length / 2)
  }

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

  def getMiddle_Double(arr: Array[Double]):Double ={
    arr(arr.length / 2)
  }
  def main(args: Array[String]): Unit = {

    var m = getMiddle_Int(Array(1,2,3,4,5))

    println(s"数组的中间元素是:${m}")

    var m1 = getMiddle_String(Array("aa","bb","cc"))

    println(s"数组的中间元素是:${m1}")

    var m2 = getMiddle_Double(Array(1.1,2.2,3.3))

    println(s"数组的中间元素是:${m2}")
  }
}

【改】

package fx

object fx02 {

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

  def main(args: Array[String]): Unit = {

    var m = getMiddle[Int](Array(1,2,3,4,5))
    println(s"数组的中间元素是:${m}")
    var m1 = getMiddle[String](Array("aa","bb","cc"))
    println(s"数组的中间元素是:${m1}")
    var m2 = getMiddle[Double](Array(1.1,2.2,3.3))
    println(s"数组的中间元素是:${m2}")
    var m3 =getMiddle[Boolean](Array(true,false,true))
    println(s"数组的中间元素是:${m3}")
  }
}

image.png