网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

第44讲:Scala中ViewBounds代码实战及其在Spark中的应用源码解析

我们先看一下变量界定的代码

成都创新互联公司是一家以网络技术公司,为中小企业提供网站维护、网站制作、网站设计、网站备案、服务器租用、域名注册、软件开发、微信小程序开发等企业互联网相关业务,是一家有着丰富的互联网运营推广经验的科技公司,有着多年的网站建站经验,致力于帮助中小企业在互联网让打出自已的品牌和口碑,让企业在互联网上打开一个面向全国乃至全球的业务窗口:建站来电联系:18982081108

package com.dt.scala.type_parameterization

class 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)
    }
}

如果我们要传入的参数是整数,编译器会报错

第44讲:Scala中View Bounds代码实战及其在Spark中的应用源码解析

说明Int不是Comparable的子类。但是Int可以通过隐式转换转成RichInt ,它是Comparable子类。

那么我们可以使用视图界定(view bound)来实现

package com.dt.scala.type_parameterization

class 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)
    }
}

当前文章:第44讲:Scala中ViewBounds代码实战及其在Spark中的应用源码解析
文章路径:http://bjjierui.cn/article/ppgcpc.html

其他资讯