Scala 上界介绍和应用实例2 | 学习笔记

简介: 快速学习Scala上界介绍和应用实例2

开发者学堂课程【Scala 核心编程 - 进阶Scala 上界介绍和应用实例2学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/610/detail/9153


Scala 上界介绍和应用实例2


scala 中上界课程测试题(理解上界含义)

obiect LowerBoundsDemo{

def mainargs:Array[String]):Unit={

biophony(Seq(new Bird, new Bird)) //?biophony(Seq(new Animal, newAnimal)) //? biaphony(Sea(new Animal, new Bird))//?

biophony(Sea(new Earth, new Earth)) //?

}

来看案例:

这里传入了一个 sequence 序列,里面传了两只鸟。传进去这个 things,进行map这边应该输出两声鸟叫 bird sounds,因为鸟的确是 animal的子类

又传了一个sequence,是传了两 animal,两个IP就传进去了

泛型威力还是很大的,它可以通用,还可以传不同的东西。传一个animal,再一个 bird,如果没有这上街界的概念,其实很难做到这一点它会发出一个animal的叫声,一个 bird 的声音

这个能进去吗?earth 是 animal 的父类。父类会是 animal 的子类吗?显然,这个是不行的。

def biophony[T<:Animal](things: Seq[T]) = things map (_.sound//这是一个函数,这个函数用了一个上界。传入的T的这个类型,需要是animal类,也可以是animal类似于小于等于。然后接收sequence, equence是个序列,而里面的泛型是T就是前面的T这个things拿到以后调用map

Map以前需要加点,这个地方不加也是可以的这个下划线表示从since这个集合里取出来的一个一个的对象

class Earth(//Earth 类

def sound(){//方法

printin("hello !")

}}

class Animal extends Earth

override def soundo=!//重写了Earth的方法sound()

println("animal sound")

}}

class Bird extends Animal{

override def sound()={ //将Animal的方法重写

print("bird sounds")

}}

下面运行一下代码

image.png

obiect LowerBoundsDemo{

def mainargs:Array[String]):Unit={

biophony(Seq(new Bird, new Bird)) //

biophony(Seq(new Animal, newAnimal)) //biaphony(Sea(new Animal, new Bird))//

//biophony(Sea(new Earth, new Earth)) //×

先把最后一个去掉点击运行。

是成功的:

image.png

把最后一条加上看看情况如何:

两个地球去运行。这个时候上届就发挥作用了。

第八行,这一行说的是不能转成这个参数,就是它跟这个匹配不上

报错原因:

earth 不是 animal 的子类

image.png

关于上界的案例就介绍到这里。

相关文章
|
Java Scala 开发者
Scala 下界介绍和应用实例 | 学习笔记
快速学习 Scala 下界介绍和应用实例
91 0
Scala 下界介绍和应用实例 | 学习笔记
|
Java Scala 开发者
Scala 泛型介绍和应用实例2 | 学习笔记
快速学习 Scala 泛型介绍和应用实例2
58 0
Scala 泛型介绍和应用实例2 | 学习笔记
|
Scala 开发者 索引
关联 Scala 源码|学习笔记
快速学习关联 Scala 源码。
180 0
|
Java 大数据 Scala
scala 对象创建的流程分析|学习笔记
快速学习 scala 对象创建的流程分析。
81 0
|
Java Scala 开发者
Windows 搭建S cala 开发环境|学习笔记
快速学习 Windows 搭建 Scala 开发环境。
150 0
Windows 搭建S cala 开发环境|学习笔记
|
大数据 Java 编译器
Scala 字符类型|学习笔记
快速学习 Scala 字符类型。
147 0
|
Java Scala 机器学习/深度学习
[Scala]Scala学习笔记一 基础
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SunnyYoona/article/details/76037690 1.
1122 0
|
SQL 消息中间件 分布式计算
如何查看spark与hadoop、kafka、Scala、flume、hive等兼容版本【适用于任何版本】
如何查看spark与hadoop、kafka、Scala、flume、hive等兼容版本【适用于任何版本】
671 0
如何查看spark与hadoop、kafka、Scala、flume、hive等兼容版本【适用于任何版本】
|
3月前
|
分布式计算 Java Scala
spark 与 scala 的对应版本查看、在idea中maven版本不要选择17,弄了好久,换成11就可以啦
spark 与 scala 的对应版本查看、.在idea中maven版本不要选择17,弄了好久,换成11就可以啦
112 2
|
3月前
|
分布式计算 数据处理 Scala
Spark 集群和 Scala 编程语言的关系
Spark 集群和 Scala 编程语言的关系
29 0