您的位置:首页 > 其它

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: