scala学习之:scala多重界定代码实战及其在Spark中的应用
2015-08-23 18:07
302 查看
一个参数的泛型类型可以同时拥有多重的界定。
例: T >: A <: B 泛型T的上界为B,下界为A,A必须为B的子类型
下界必须写在前面。
泛型类型不可以同时拥有多个上界,但可以这样表示:
例: T <: A with B 泛型T是A或者B的子类。
T >:A with B A 或者 B 为T的子类
泛型类型可以有多个视图界定。
例: T <% A <% B T同时满足A的隐式转换与B的隐式转换
上下文界定
例: T : A : B 也是同时满足
代码示例:
class M_A[T]
class M_B[T]
object Multi_Bounds{
def main(args: Array[String]): Unit = {
implicit val a = new M_A[Int]
implicit val b = new M_B[Int]
def foo[T : M_A : M_B](i : T) = println("OK")
foo(2)
}
}
多重界定在Spark使用不是很多。
以上内容是从王家林老师DT大数据课程第47讲的学习笔记。
DT大数据微信公众账号:DT_Spark
王家林老师QQ:1740415547
王家林老师微信号:18610086859
百度云盘地址:http://pan.baidu.com/s/1qWj1IHY
优酷播放地址:http://v.youku.com/v_show/id_XMTI4MDUyMDc2NA==.html
51cto的播放地址:http://edu.51cto.com/lesson/id-67734.html
以上内容是从王家林老师DT大数据课程第43、44讲的学习笔记。
DT大数据微信公众账号:DT_Spark
王家林老师QQ:1740415547
王家林老师微信号:18610086859
百度云盘地址:http://pan.baidu.com/s/1eQjga2I
优酷播放地址:http://v.youku.com/v_show/id_XMTI3ODgwNTQ0OA==.html
51cto的播放地址:http://edu.51cto.com/lesson/id-67577.html
例: T >: A <: B 泛型T的上界为B,下界为A,A必须为B的子类型
下界必须写在前面。
泛型类型不可以同时拥有多个上界,但可以这样表示:
例: T <: A with B 泛型T是A或者B的子类。
T >:A with B A 或者 B 为T的子类
泛型类型可以有多个视图界定。
例: T <% A <% B T同时满足A的隐式转换与B的隐式转换
上下文界定
例: T : A : B 也是同时满足
代码示例:
class M_A[T]
class M_B[T]
object Multi_Bounds{
def main(args: Array[String]): Unit = {
implicit val a = new M_A[Int]
implicit val b = new M_B[Int]
def foo[T : M_A : M_B](i : T) = println("OK")
foo(2)
}
}
多重界定在Spark使用不是很多。
以上内容是从王家林老师DT大数据课程第47讲的学习笔记。
DT大数据微信公众账号:DT_Spark
王家林老师QQ:1740415547
王家林老师微信号:18610086859
百度云盘地址:http://pan.baidu.com/s/1qWj1IHY
优酷播放地址:http://v.youku.com/v_show/id_XMTI4MDUyMDc2NA==.html
51cto的播放地址:http://edu.51cto.com/lesson/id-67734.html
以上内容是从王家林老师DT大数据课程第43、44讲的学习笔记。
DT大数据微信公众账号:DT_Spark
王家林老师QQ:1740415547
王家林老师微信号:18610086859
百度云盘地址:http://pan.baidu.com/s/1eQjga2I
优酷播放地址:http://v.youku.com/v_show/id_XMTI3ODgwNTQ0OA==.html
51cto的播放地址:http://edu.51cto.com/lesson/id-67577.html
相关文章推荐
- C++实现队例
- lua通配符
- 转载 [CXF REST标准实战系列] 二、Spring4.0 整合 CXF3.0,实现测试接口
- [CXF REST标准实战系列] 一、JAXB xml与javaBean的转换
- 【Java】Java小游戏之Shoot游戏源码及详解
- atitit.eclipse有多少api  扩展点,以及扩展点的设计
- spring 4.2.0后jdbcTemplate中不用queryForLong了(之系统升级发现)
- atitit.eclipse有多少api 扩展点,以及扩展点的设计
- atitit.eclipse有多少api 扩展点,以及扩展点的设计
- Java编写ArrayBasic制作一个简单的酒店管理系统
- ASP.NET MVC Web API 学习笔记---第一个Web API程序
- c语言的内存分配
- C++ STL lower_bound()返回值
- Intellij IDEA工具Java web 环境搭建
- 商城导航代码
- Java线程状态中BLOCKED和WAITING有什么区别?
- Google APAC 2016 University Graduates Test Round A
- 商城导航代码
- python异常处理和断言
- python - 异常处理及with语句