开发者学堂课程【Scala 核心编程 - 进阶:Scala 泛型介绍和应用实例2】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/610/detail/9151
Scala 泛型介绍和应用实例2
内容介绍
一.Scala 泛型应用案例3
二.总结
一、Scala 泛型应用案例3
>要求
1)定义一个函数,可以获取各种类型的 List 的中间 index 的值
2)使用泛型完成
def getMidEle[A](l: ListA])={
l(l.length/2)
}
下面看一下这个泛型不同的应用场景:
package com.atguigu.chapter18.generic
object GenericDemo03 {
def main(args: Array[String]): Unit = {
val list1 = List("hello", "dog", "world")
val list2 = List(90,10,23)
println(midList[stringl(list1))// “dog"
println(midList[Int](list2))// 10
}
/*
要求
定义一个函数,可以获取各种类型的 List 的中间index的值使用泛型完成
*/
def midList[E](
l
: List[E]): E= {
l(
l
.length / 2)
}
}
点击运行:
以上就是Scala应用的第三个案例。
二、总结
1.泛型基本介绍
1)如果我们要求函数的参数可以接受任意类型。可以使用泛型,这个类型可以代表任意的数据类型。
2)例如 List,在创建 List 时,可以传入整形、字符串、浮点数等等任意类型。那是因为List在类定义时引用了泛型。比如在Java中:public interface List<E> extends Collection<E>
2.Scala 泛型应用案例1
要求:
1)编写一个Message类
2)可以构建Int类型的Message,String类型的Message.
3)要求使用泛型来完成设计(说明:不能使用Any)
3.Scala 泛型应用案例2
要求
1)请设计一个EnglishClass(英语班级类),在创建EnglishClass的一个实例时,需要指定[班级开班季节(spring,autumnsummerwinter)、班级名称、班级类型]
2)开班季节只能是指定的,班级名称为string,班级类型是(字符串类型"高级班","初级班"..)或者是 Int类型(12,3等)
3)请使用泛型来完成本案例.
4. Scala 泛型应用案例3
>要求
1)定义一个函数,可以获取各种类型的 List的中间index的值
2)使用泛型完成