Scala中的泛型

package z

//需求:定义一个名为getMiddleEle的方法

// 用它来获取当前的列表的中间位置上的值

// 中间的位置的下标 = 长度/2

//目标:

// getMiddleEle(List(1,2,3,4,5)) ===> 5/2 = 2 ===>下标为2的元素是: 3

// getMiddleEle(List(1,2,3,4)) ===> 4/2 = 2 ===>下标为2的元素是: 3

 

object test9 {

  //定义一个函数的格式

  //def 函数名 (参数名 : 类型) : 返回值的类型={

  // 函数体

  // }

  //List[Int]: List 是列表,[Int] 是说列表中的每一个元素都是int!

// def getMiddleEle(list: List[Int]): Int = {

// list(list.length / 2)

// }

//

// def getMiddleEle1(list: List[String]): String = {

// list(list.length / 2)

// }

//

// def getMiddleEle2(list: List[Double]): Double = {

// list(list.length / 2)

// }

  //类型参数-----泛型(数据类型是变化的)

  //(1)可以有多个

  //(2)名称合法就行,没有固定的,一般用T (type)

  //在scala中用[]表示 在java中,用<>表示

  def getMiddleEle[X](list: List[X]): X = {

       list(list.length / 2)

     }

 

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

// val rs1 = getMiddleEle(List(1, 2, 3, 4, 5))

// println(rs1)

// val rs2 = getMiddleEle(List("a", "b", "c", "d", "e"))

// println(rs2)

// val rs3 = getMiddleEle[Double](List(1.1,2.2,3.3))

// println(rs3)

    // 理解泛型

    //1.与数据类型的区别

    //List是数据类型,表示有一个列表。[Int]表示泛型。它约定列表中的每一个元素都是Int类型

    //val l1 = List[Int](1,2,"a")

    //l1.foreach(println)

    //2.泛型在编译时生效,在运行时不可见,最后产生的class文件中是没有泛型的

 

 

  }}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值