蘑菇云行动前传第16课:Scala implicits编程彻底实战及Spark源码鉴赏

package com.dtspark.scala.basics

/**

* Implicits隐式转换实战

*/

class Man(val name:String)

/*object Man{

implicit def man2SuperMan(man:Man)=new SuperMan(man.name)

}*/

object implicits{

implicit def man2SuperMan(man:Man)=new SuperMan(man.name)

}

class SuperMan(val name:String){

def MakeMiracles=println(this.name+"Wow,wow,wow...")

}

object HelloImplicits {

def main(args: Array[String]): Unit = {

//导入implicits包

import com.dtspark.scala.basics.implicits._

//实例化伴生类

val man=new Man("Scala")

//执行方法

man.MakeMiracles

}

implicit val content="hello"

talk("Scala")("Spark")

def talk(name:String)(implicit content:String)=println(name + ":" +content)

}

运行结果:

Scala:Spark

ScalaWow,wow,wow...

时间: 2024-10-16 06:32:43

蘑菇云行动前传第16课:Scala implicits编程彻底实战及Spark源码鉴赏的相关文章

大数据Spark蘑菇云前传第16课:Scala implicits编程彻底实战及Spark源码鉴赏(学习笔记)

本課課程: Spark源码中的Scala的 implicit 的使用 Scala的 implicit 编程操作实战 Scala的 implicit 企业级最佳实践 Spark源码中的Scala的 implicit 的使用 這個東西意義非常重大,RDD 本身沒有所謂的 Key, Value,只不過是自己本身解讀的時候把它變成 Key Value 的方法去解讀,RDD 本身就是一個 Record. RDD 本身沒有 reduceByKey,它是用了隐式转换,转换了PairRDDPartition 類

第3课 Scala函数式编程彻底精通及Spark源码阅读笔记

本课内容: 1:scala中函数式编程彻底详解 2:Spark源码中的scala函数式编程 3:案例和作业 函数式编程开始: def fun1(name: String){ println(name) } //将函数名赋值给一个变量,那么这个变量就是一个函数了. val fun1_v = fun1_ 访问 fun1_v("Scala") 结果:Scala 匿名函数:参数名称用 => 指向函数体 val fun2=(content: String) => println(co

大数据Spark蘑菇云前传第15课:Scala类型参数编程实战及Spark源码鉴赏(学习笔记)

前传第15课:Scala类型参数编程实战及Spark源码鉴赏 本課課程: Spark源码中的Scala类型系統的使用 Scala类型系統编程操作实战 Spark源码中的Scala类型系統的使用 classOf[RDD[_]] 這個也是类型系統 這里的意思是說 B 這種類型必需至少是 A 這樣類型 Ordering Scala类型系統编程操作实战 作為類型系統最大的就可以對類型進行限制,在Scala 中的類型系統,他本身也作為對象.e.g. 我們可以建立 Person 這個類,現在可以建立一個什麼

Scala实战高手****第14课Scala集合上的函数式编程实战及Spark源码鉴赏

package com.dt.spark.scala.bascis object Functional_Itearal {   def main(args: Array[String]): Unit = {        val range = 1 to 10     val list = List(1,2,3,4,5)     println(list.head)      println(list.tail)            println(list.tail)         pri

蘑菇云行动前传第17课:Scala并发编程实战

package com.dtspark.scala.basics import scala.actors.Actor /** * Scala多线程实战 * 1:开发环境:Scala IDE(版本为:2.11.8)集成开发环境 * 2:引用jar包:scala-actors.jar,scala-actors-migration.jar * 3:该实例使用Scala模式匹配以及Scala多线程使用技术 * Scala多线程并发调用方法为: * 伴生类: class XXX extends Actor

Scala实战高手****第13课Scala模式匹配实战和Spark源码鉴赏

package com.dt.spark.scala.bascis class Dataframework case class Computerframework (name:String,popular:Boolean) extends Dataframework case class Storgeframework (name:String,popular:Boolean) extends Dataframework object helloPatternMatch { def main(

第2课 Scala面向对象彻底精通及Spark源码SparkContext,RDD阅读总结

第2课:Scala面向对象彻底精通及Spark源码阅读本期内容:1 Scala中的类.object实战详解 2 Scala中的抽象类.接口实战详解 3 综合案例及Spark源码解析 一:定义类class HiScala{private var name = "Spark" def sayName(){println(name)}def getName = name} Scala中,变量与类中的方法是同等级的,可以直接赋值给方法. scala中的get与set与Java中的get,set

第三季-第16课-信号量互斥编程

第16课-信号量互斥编程 16.1 公示栏问题(问题引入) 1. 问题描述 这里面我们举一个小例子.在一个班级里就有一个公示栏,A同学想写“数学课考试”,B同学想写“英语课取消”.但是有一个时间,A同学只写下了“数学课”三个字,没来得及写后面的内容就出去了,但是这个时候B同学来写下了“英语课取消”.这样让同学们看来就成了“数学课英语课取消”,给班级的其他同学造成了歧义. 这也就是我们说的同时访问一个资源,造成了,数据的混乱.若是有多个进程同时访问一个资源,同样会造成这个问题. 2. 问题程序化

Scala 深入浅出实战经典 第49课 Scala中Variance代码实战(协变)

王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 腾讯微云:http://url.cn/TnGbdC 360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2 技术爱好者尤其是大数据爱好者 可以加DT大数据梦工厂的qq群 DT大数据梦工厂① :462923555 DT大数据梦工厂②:437123764 DT大数据梦工厂③