scala学习之:Scala中泛型类、泛型函数、泛型在Spark中的广泛应用
2015-08-19 23:05
489 查看
本视频以具体的例子代码详细介绍了Scala中泛型类、泛型函数、泛型在Spark中的广泛应用:
(1)Scala中泛型类的定义和使用,Scala语言强大的一个优势是它的类型推导,当在初始化某个泛型类的时候,可以通过该类的构造参数推导出实际类型。
示例代码:
class Triple[F,S,T](val first : F , val second : S,val third : T)
var tripple = new Triple("Spark",3,3.1415)
var bigData = new Triple[String,String,Char]("Hadoop","Java",'3')
(2)Scala的函数和方法也可以带有类型参数,我们称之为泛型函数,同样Scala也会从调用该方法使用的实际参数来推导出该类型参数的实际类型。
示例代码:
def getData[T](list:List[T]) = list(list.length / 2)
println(getData(List("Spark","Scala",'M')))
def foo[A,B](f:A=> List[A], b:A)= f(b) // f : A => List[A] 参数f 是A类型
val f = getData[Int]_ //此类函数的定义如何以标准形式写呢
println(f(List(1,2,3,4,5,6)))
def biuldArray[T:ClassTag](len:Int) = new Array[T](len)
println(biuldArray[Int](5).toList)
PS: ClassTag参照官网api,截取说明:这类型是存储一个给定可擦除类类型的,可通过runTimeClass字段访问,这在数组实例化在代码编译时类型未知的这种情况下特别有用。
看了翻译有点意思,还是不太明白。
(3)结合Spark的源代码,分析了泛型在Spark中的使用情况。(这个暂时不明白)
以上内容是从王家林老师DT大数据课程第42讲的学习笔记。
DT大数据微信公众账号:DT_Spark
王家林老师QQ:1740415547
王家林老师微信号:18610086859
百度云盘地址:http://pan.baidu.com/s/1sjsmSXZ
优酷播放地址:http://v.youku.com/v_show/id_XMTI3NzQxMDY2NA==.html
51cto的播放地址:http://edu.51cto.com/lesson/id-66584.html
(1)Scala中泛型类的定义和使用,Scala语言强大的一个优势是它的类型推导,当在初始化某个泛型类的时候,可以通过该类的构造参数推导出实际类型。
示例代码:
class Triple[F,S,T](val first : F , val second : S,val third : T)
var tripple = new Triple("Spark",3,3.1415)
var bigData = new Triple[String,String,Char]("Hadoop","Java",'3')
(2)Scala的函数和方法也可以带有类型参数,我们称之为泛型函数,同样Scala也会从调用该方法使用的实际参数来推导出该类型参数的实际类型。
示例代码:
def getData[T](list:List[T]) = list(list.length / 2)
println(getData(List("Spark","Scala",'M')))
def foo[A,B](f:A=> List[A], b:A)= f(b) // f : A => List[A] 参数f 是A类型
val f = getData[Int]_ //此类函数的定义如何以标准形式写呢
println(f(List(1,2,3,4,5,6)))
def biuldArray[T:ClassTag](len:Int) = new Array[T](len)
println(biuldArray[Int](5).toList)
PS: ClassTag参照官网api,截取说明:这类型是存储一个给定可擦除类类型的,可通过runTimeClass字段访问,这在数组实例化在代码编译时类型未知的这种情况下特别有用。
看了翻译有点意思,还是不太明白。
(3)结合Spark的源代码,分析了泛型在Spark中的使用情况。(这个暂时不明白)
以上内容是从王家林老师DT大数据课程第42讲的学习笔记。
DT大数据微信公众账号:DT_Spark
王家林老师QQ:1740415547
王家林老师微信号:18610086859
百度云盘地址:http://pan.baidu.com/s/1sjsmSXZ
优酷播放地址:http://v.youku.com/v_show/id_XMTI3NzQxMDY2NA==.html
51cto的播放地址:http://edu.51cto.com/lesson/id-66584.html
相关文章推荐
- 模板类
- 学术_聚类种类分析(1)(转载)
- Android中View的绘制过程 onMeasure方法简述
- hdu 2817 A sequence of numbers(快速幂)
- 驱动级多开工具,支持32位和64位
- 卓有成效的管理者(珍藏版) (德鲁克管理经典)
- 小数化为最简分式 (hdu 1717)
- 进程与线程的区别
- 我的收藏
- 30分钟入门正则表达式(转)
- install hadoop dev plugin in eclipse
- 花生壳动态域名解析内网映射对本地服务器安全吗
- tesseract训练中文备忘录
- win下xamarin和64位Android Studio共存
- POJ2823--Sliding Window(单调队列)
- cisco STP生成树配置
- 接口
- 数据列表页面逻辑范例
- HDOJ 2147 kiki's game (博弈)
- STL