scala implicit class使用

官方文档:http://docs.scala-lang.org/zh-cn/overviews/core/implicit-classes.html

介绍

Scala 2.10引入了一种叫做隐式类的新特性。隐式类指的是用implicit关键字修饰的类。在对应的作用域内,带有这个关键字的类的主构造函数可用于隐式转换。

隐式类型是在SIP-13中提出的。

用法

创建隐式类时,只需要在对应的类前加上implicit关键字。比如:

object Helpers {
  implicit class IntWithTimes(x: Int) {
    def times[A](f: => A): 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Spark中,隐式转换是一种特性,可以将一种类型自动转换为另一种类型,以便在编写代码时更加方便。Spark中的隐式转换通过隐式值、隐式对象、隐式方法和隐式类来实现。在RDD类的伴生对象中,有一个隐式转换方法`rddToPairRDDFunctions`,将RDD转换为PairRDDFunctions类,从而为RDD添加了aggregateByKey()、reduceByKey()、join()等方法。这些方法在RDD类本身并没有定义,使用隐式转换可以让我们在代码中使用这些方法来操作RDD。 此外,在Scala中寻找隐式定义的过程是通过在当前代码作用域中查找隐式定义,如果找不到则检查与类型相关的伴生对象、继承或实现的类、特征等的伴生对象、包含类型的参数化类型的伴生对象以及外部类的伴生对象。只要找到合适的隐式定义,就会应用于代码中。 需要注意的是,隐式值、隐式对象的名称并不重要,重要的是它们的类型。如果同时定义了多个相同类型的隐式值,就会出现二义性,编译器无法确定使用哪一个。因此,在使用隐式转换时,需要避免出现二义性的情况。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [透过Spark源码浅谈Scala隐式(implicit)机制](https://blog.csdn.net/nazeniwaresakini/article/details/104814444)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值