码迷,mamicode.com
首页 > 其他好文 > 详细

第51讲:Scala中链式调用风格的实现代码实战及其在Spark编程中的广泛运用

时间:2015-09-08 21:55:50      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:

今天学习了下scala中的链式调用风格的实现,在spark编程中,我们经常会看到如下一段代码:

sc.textFile("hdfs://......").flatMap(_.split(" ")).map(_,1).reduceByKey(_ + _)........

这种风格的编程方法叫做链式调用,它的实现方法见下面的代码:

class Animal {def breathe : this.type = this}
class Cat extends Animal {def eat: this.type = this}

object test51{
  def main(args:Array[String]){
    val cat = new Cat
    cat.breathe.eat
  }
}

在如上代码中,我们可以看到,我们的cat实例调用了breathe方法后,又调用了eat方法。

如果我们将Animal类和Cat类进行一些变化,如下面所示:

class Animal {def breathe  = this}
class Cat extends Animal {def eat = this}

object test51{
  def main(args:Array[String]){
    val cat = new Cat
    cat.breathe.eat
  }
}

这样一来,当我们调用cat.breathe.eat时,编译器就会报错

看来,问题的关键就在于方法定义时的this.type = this这里了

应用这种写法,我们就可以在类实例化以后,进行链式的调用方法,进行方法的调用了。

 

分享下更多的scala资源吧:

 

百度云盘:http://pan.baidu.com/s/1gd7133t

 

微云云盘:http://share.weiyun.com/047efd6cc76d6c0cb21605cfaa88c416

 

360云盘: http://yunpan.cn/cQN9gvcKXe26M (提取码:13cd)

 

信息来源于 DT大数据梦工厂微信公众账号:DT_Spark

 

关注微信账号,获取更多关于scala学习内容

第51讲:Scala中链式调用风格的实现代码实战及其在Spark编程中的广泛运用

标签:

原文地址:http://www.cnblogs.com/qingyuesama/p/4792979.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!