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

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

相关文章
|
6月前
|
SQL Java 关系型数据库
Scala应用 —— JDBC的创建
这篇文章介绍了如何使用Scala实现JDBC连接。首先,通过在pom.xml添加MySQL JDBC驱动依赖,然后使用`Class.forName()`加载驱动,接着创建连接对象。初始化执行器涉及创建执行器对象和设置参数。执行操作时,根据DML(数据修改语言)和DQL(数据查询语言)返回不同结果。文章提出了一个柯里化的`jdbc`函数,以处理不同操作步骤和多类型结果。结果类型通过枚举和抽象类`Three`的子类来表示,包括异常、DML影响行数和DQL查询结果。最后,展示了`jdbc`方法的实现,以及如何处理结果并转换为具体对象。代码示例中,查询结果被转换为`Test`对象数组并打印。
73 2
Scala应用 —— JDBC的创建
|
6月前
|
数据采集 JSON 数据处理
一步步实现知乎热榜采集:Scala与Sttp库的应用
使用Scala和Sttp库,结合代理IP,本文阐述了爬取并处理知乎热榜数据的方法。首先,确保安装Scala和SBT,然后在`build.sbt`引入Sttp等相关依赖。代码中,设置代理服务器信息、User-Agent和Cookie,发送GET请求获取数据。解析JSON数据后,归类和统计不同类型条目的数量,例如文章和问题。运行示例输出归类和统计结果,为数据分析提供基础。
一步步实现知乎热榜采集:Scala与Sttp库的应用
|
分布式计算 Java 大数据
|
Java Scala 开发者
Scala 下界介绍和应用实例 | 学习笔记
快速学习 Scala 下界介绍和应用实例
Scala 下界介绍和应用实例 | 学习笔记
|
Java Scala 开发者
Scala 泛型介绍和应用实例2 | 学习笔记
快速学习 Scala 泛型介绍和应用实例2
Scala 泛型介绍和应用实例2 | 学习笔记
|
Java Scala 机器学习/深度学习
[Scala]Scala学习笔记一 基础
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SunnyYoona/article/details/76037690 1.
1147 0
|
1月前
|
分布式计算 大数据 Java
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
49 5
|
1月前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
48 3
|
1月前
|
消息中间件 分布式计算 NoSQL
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
40 0
|
1月前
|
消息中间件 存储 分布式计算
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
大数据-103 Spark Streaming Kafka Offset管理详解 Scala自定义Offset
82 0