惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
Recent Announcements
Recent Announcements
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The GitHub Blog
The GitHub Blog
MyScale Blog
MyScale Blog
爱范儿
爱范儿
GbyAI
GbyAI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
美团技术团队
Y
Y Combinator Blog
博客园 - 叶小钗
Apple Machine Learning Research
Apple Machine Learning Research
Martin Fowler
Martin Fowler
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
罗磊的独立博客
M
MIT News - Artificial intelligence
博客园 - Franky
V
Visual Studio Blog
I
InfoQ
V
V2EX
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
博客园 - 司徒正美
L
LangChain Blog

博客园 - 曹振华

移动营业厅推广 DolphinScheduler2.0.1 源码 招聘java工程师 Apache seaTunnel 数据集成平台 Spark RDD解密 Scala 深入浅出实战经典 第81讲:Scala中List的构造是的类型约束逆变、协变、下界详解 Scala 深入浅出实战经典 第79讲:单例深入讲解及单例背后的链式表达式 Scala 深入浅出实战经典 第78讲:Type与Class实战详解 Scala 深入浅出实战经典 第77讲:模式匹配下的提取器动手构造实战 Scala 深入浅出实战经典 第76讲:模式匹配下的赋值语句 Scala 深入浅出实战经典 第75讲:模式匹配下的For循环 Scala 深入浅出实战经典 第68讲:Scala并发编程原生线程Actor、Cass Class下的消息传递和偏函数实战解析 Scala 深入浅出实战经典 第67讲:Scala并发编程匿名Actor、消息传递、偏函数解析 Scala 深入浅出实战经典 第66讲:Scala并发编程实战初体验 Scala 深入浅出实战经典 第65讲:Scala中隐式转换内幕揭秘、最佳实践及其在Spark中的应用源码解析 Scala 深入浅出实战经典 第64讲:Scala中隐式对象代码实战详解 Scala 深入浅出实战经典 第63讲:Scala中隐式类代码实战详解 Scala 深入浅出实战经典 第61讲:Scala中隐式参数与隐式转换的联合使用实战详解及其在Spark中的应用源码解析 Scala 深入浅出实战经典 第60讲:Scala中隐式参数实战详解以及在Spark中的应用源码解析
Scala 深入浅出实战经典 第62讲:Scala中上下文界定内幕中的...
曹振华 · 2015-08-21 · via 博客园 - 曹振华

王家林亲授《DT大数据梦工厂》大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频、PPT、代码下载:

百度云盘:http://pan.baidu.com/s/1c0noOt6
腾讯微云:http://url.cn/TnGbdC
360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2

土豆:http://www.tudou.com/programs/view/A5a7v7W-BfE/

优酷:http://v.youku.com/v_show/id_XMTI4OTY0NDc2OA==.html?from=s1.8-1-1.2

爱奇艺:http://www.iqiyi.com/w_19rru5bi79.html#vfrm=2-3-0-1

腾讯视频:http://v.qq.com/boke/page/v/0/m/v0160rz9hkm.html


技术爱好者尤其是大数据爱好者 可以加DT大数据梦工厂的qq群

DT大数据梦工厂① :462923555
DT大数据梦工厂②:437123764
DT大数据梦工厂③ :418110145

微信公众账号: DT_Spark
王家林老师微信号: 18610086859
王家林老师QQ: 1740415547
王家林老师邮箱: 18610086859@126.com

本视频由王家林老师, 亲自讲解, 完全通过代码实战把您带人大数据的时代.

package com.parllay.scala.implicits

/**
* Created by richard on 15-8-21.
* 第62讲:Scala中上下文界定内幕中的隐式参数实战详解
*/

/**
* 类型参数可以有一个形式为;T:M 的上下文界定, 其中M为另外一个泛型类型;
* 它要求作用域中存在一个类型为M[T]的隐式值.
*
* 下面类要求存在类型为Ordering[T]的隐式值.
* new Pair_Implicits(7, 9) 这个实例, 编译器将推断出我们需要一个Pair_Implicits[Int].
* 由于predef作用域中有一个类型为Ordering[Int]的隐式值. 因此Int满足上下文界定.
* 这个Ordering[Int] 就成为该类的一个字段, 被传入需要该值的方法当中.
*/
class Pair_Implicits[T: Ordering](val first:T, val second: T){
def bigger(implicit ordered: Ordering[T]) =
if(ordered.compare(first,second) > 0) first else second
}

/**
* 我们还可以使用Implicitly方法获取该值.implicitly[Ordering[T] 是一个方法,
* implicitly[T](implicit e: T) = e
*
*隐式值以一种不可见的方式被加入到方法当中.
*/
class Pair_Implicitly[T: Ordering](val first:T, val second: T){
def bigger = if(implicitly[Ordering[T]].compare(first, second) > 0) first else second
}

/**
* 可以利用Ordered特质, 它实现了Ordered到Ordering的隐式转换. 因此可以直接比较.
*/
class Pair_Implicitly_Ordered[T:Ordering](val first:T, val second:T){
def bigger = {
import Ordered._
if(first > second) first else second
}
}

object Context_Bounds_Internals {

def main(args: Array[String]) {
println(new Pair_Implicits(7, 9).bigger)
println(new Pair_Implicitly(7,9).bigger)
println(new Pair_Implicitly_Ordered(7, 9).bigger)
}

}