Scala的泛型

复制代码
需求:定义一个名为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

格式如下:
定义一个函数的格式:
  def 函数名(参数名: 类型): 返回值的类型 = {
   函数体
   }
List[Int]: List 是列表, [Int] 是说列表中的每个元素都是int
 
类型参数化 -------泛型(数据类型是变化的)
  1. 可以有多个
  2. 名称合法就行,没有固定的。 一般用T(Type)
  []: 里面的是泛型
  在Scala中,用[]表示。在Java中,用<>表示

理解泛型
  1.与数据类型的区别
  list是数据类型,表示一个列表。 [Int] 表示泛型,它约定列表中每个元素都是Int类型
  
Scala 复制代码
def getMiddleEle[X](list:List[X]):X={
    list(list.length/2)
  }

  def main(args: Array[String]): Unit = {
    val rs1=getMiddleEle[Int](List(1,2,3,4,5))
    println(rs1)

    val rs2 = getMiddleEle[String](List("a","b","c","d","e"))
    println(rs2)

    val rs3=getMiddleEle[Double](List(1.1,1.2,1.3))
    println(rs3)

    //理解泛型
    //1.与数据类型的区别
    // List是数据类型,表示一个列表。[Int]表示泛型,它约定列表中每一个元素都是Int类型
    val l1=List[Int](1,2,"a")
    //l1.foreach(println)
  }

}
相关推荐
计算机学姐2 分钟前
基于SpringBoot的高校社团管理系统【协同过滤推荐算法+数据可视化】
java·vue.js·spring boot·后端·mysql·信息可视化·推荐算法
缺点内向4 小时前
C#: 高效移动与删除Excel工作表
开发语言·c#·.net·excel
老前端的功夫4 小时前
Web应用的永生之术:PWA落地与实践深度指南
java·开发语言·前端·javascript·css·node.js
程序员爱钓鱼4 小时前
Python编程实战:面向对象与进阶语法——类型注解与代码规范(PEP 8)
后端·python·ipython
程序员爱钓鱼4 小时前
Python实战:用高德地图API批量获取地址所属街道并写回Excel
后端·python·ipython
Yeats_Liao5 小时前
时序数据库系列(三):InfluxDB数据写入Line Protocol详解
数据库·后端·时序数据库
王元_SmallA5 小时前
Redis Desktop Manager(Redis可视化工具)安装
java·后端
ᐇ9595 小时前
Java HashMap深度解析:数据结构、原理与实战指南
java·开发语言·数据结构
好好研究5 小时前
Spring框架 - 开发方式
java·后端·spring
QT 小鲜肉5 小时前
【个人成长笔记】在 Linux 系统下撰写老化测试脚本以实现自动压测效果(亲测有效)
linux·开发语言·笔记·单片机·压力测试