第44讲:Scala中View Bounds代码实战及其在Spark中的应用源码解析
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,我们先看一下变量界定的代码package com.dt.scala.type_parameterizationclass Pair_NoPerfect[T <: Comparable[T]](firs
千家信息网最后更新 2025年01月22日第44讲:Scala中View Bounds代码实战及其在Spark中的应用源码解析
我们先看一下变量界定的代码
package com.dt.scala.type_parameterizationclass Pair_NoPerfect[T <: Comparable[T]](first: T,second:T){ def bigger ={ if (first.compareTo(second)>=0) first else second }}object View_Bounds { def main(args: Array[String]): Unit = { val pair = new Pair_NoPerfect("Spark","Hadoop") println(pair.bigger) }}
如果我们要传入的参数是整数,编译器会报错
说明Int不是Comparable的子类。但是Int可以通过隐式转换转成RichInt ,它是Comparable子类。
那么我们可以使用视图界定(view bound)来实现
package com.dt.scala.type_parameterizationclass Pair_NoPerfect[T <: Comparable[T]](first: T,second:T){ def bigger ={ if (first.compareTo(second)>=0) first else second }}// 将变量界定符号中的:换成% ,那么就变成了视图界定 <% class Pair_Better[T <% Comparable[T]](first: T,second:T){ def bigger ={ if (first.compareTo(second)>=0) first else second }}object View_Bounds { def main(args: Array[String]): Unit = { val pair = new Pair_Better(1,2) // 隐式转换 Int -> RichInt println(pair.bigger) }}
变量
子类
视图
代码
参数
可以通过
整数
符号
编译器
会报
编译
实战
源码
应用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
云服务器怎么装系统
软件开发的售前
普陀区数据网络技术服务答疑解惑
计算机网络安全账号
群晖 软件开发
网络安全有多少条多少章
怀旧服普通服务器和pvp区别
虹口区使用软件开发项目信息
武汉网络安全培养高峰论坛
客如云无法连接服务器
全球科技互联网增速分析
写入数据库后乱码
数据库的相关知识
现代化网络安全应用
重庆直销软件开发费用多少
网络安全管理领导小组
索尼G200AA使用的服务器
软件开发的关键问题
个人电脑和服务器的区别
义乌学校软件开发
网易服务器未响应
网络安全黑板报图片甘肃
数据库创建一个过程的作用
计算机网络安全账号
sql数据库除sum总和
手机如何进入软件开发
轩辕传奇怎么找不到服务器
台式机服务器可以托运吗
杭州双线服务器价格
walker怎么打开数据库