大数据系列修炼-Scala课程48
2016-09-25 10:29
344 查看
大数据系列修炼-Scala课程48
核心内容:
1、Scala类型约束代码实战及其在Spark中的应用源码解析
1>在scala中,常见的两种类型约束:
A =:= B 含义:表示A类型等同于B类型
A <:< B 含义:表示A类型是B类型的子类 A <:< B从整体上可以理解A<:B,但是实际上A <:< B比A<:B更加严格,
因为编译器在编译级别就会进行类型判断。
2>=:=与 <:<这两个操作符实际上是类,而这两个类是在Predef中定义的。
3>在def rockyT(implicit m: T<:
实例程序2(<:):
实例程序3(<%):
核心内容:
1、Scala类型约束代码实战及其在Spark中的应用源码解析
1、Scala类型约束的使用 |
A =:= B 含义:表示A类型等同于B类型
A <:< B 含义:表示A类型是B类型的子类 A <:< B从整体上可以理解A<:B,但是实际上A <:< B比A<:B更加严格,
因为编译器在编译级别就会进行类型判断。
2>=:=与 <:<这两个操作符实际上是类,而这两个类是在Predef中定义的。
3>在def rockyT(implicit m: T<:
package IT03 import java.io._ //本程序的目的是掌握Scala中类型约束代码实战及其在Spark中的应用源码解析 object App { def main(args:Array[String]):Unit= { //实例程序1: def rocky[T](first:T)(implicit m: T<:<Serializable) { println("Life is short,you need spark!") } //从下面的实例可以看出String、Integer在底层实现了Serializable接口,但是Int没有 rocky[String]("Spark") //Life is short,you need spark! //rocky[Int](100) //Life is short,you need spark! } }
实例程序2(<:):
object App { def main(args:Array[String]):Unit= { //实例程序1: def rocky[T<:Serializable](first:T) { println("Life is short,you need spark!") } rocky[String]("Spark") //Life is short,you need spark! rocky[Integer](100) //Life is short,you need spark! } }
实例程序3(<%):
object App { def main(args:Array[String]):Unit= { def rocky[T<%Serializable](first:T) { println("Life is short,you need spark!") } rocky[String]("Spark") //Life is short,you need spark! rocky[Int](100) //Life is short,you need spark! } }
相关文章推荐
- 大数据系列修炼-Scala课程32
- 大数据系列修炼-Scala课程46
- 大数据系列修炼-Scala课程63
- 大数据系列修炼-Scala课程09
- 大数据系列修炼-Scala课程35
- 大数据系列修炼-Scala课程16(1)
- 大数据系列修炼-Scala课程03
- 大数据系列修炼-Scala课程71
- 大数据系列修炼-Scala课程19
- 大数据系列修炼-Scala课程24(1)
- 大数据系列修炼-Scala课程58
- 大数据系列修炼-Scala课程11
- 大数据系列修炼-Scala课程64
- 大数据系列修炼-Scala课程02
- 大数据系列修炼-Scala课程08
- 大数据系列修炼-Scala课程21
- 大数据系列修炼-Scala课程49
- 大数据系列修炼-Scala课程68
- 大数据系列修炼-Scala课程52
- 大数据系列修炼-Scala课程67