您的位置:首页 > 大数据

大数据系列修炼-Scala课程53

2016-09-27 15:21 519 查看
大数据系列修炼-Scala课程53

核心内容:

1、Scala中的结构类型实战解析

1、Scala中的结构类型操作代码实战
1>结构类型是指一组关于抽象的方法或字段或类型的规格的说明,这些抽象的方法或字段或类型是我们传进的参数或者说

要使用的对象必须具备的:即传进来的参数或对象必须具备相应的抽象方法或字段或类型。

简单来说:结构类型就是限制参数是某种类型.

2>def init(obj: {def fun():Unit}) = obj.fun() 含义:对于init方法而言,传进来的参数或对象必须具备相应的fun()方法;反之,只要

传进来的参数或对象具有fun方法,就可以作为参数使用。

3>Scala中的结构类型就是动态编程语言中的鸭子类型。

4>在Scala的结构类型当中,我们并不关心传进来的对象的类型,我们对传进来的参数或对象只有一个要求:传进来的参数或对象具有

某种行为。

5>type关键字将=后面的内容命名为一个别名,即若使用这个内容,可以直接用其别名代替。

实例程序:

object App6
{
def main(args:Array[String]):Unit=
{
init(A)  //Spark Pk  Hadoop!
val student = new Student()
init(student) //Student should study Spark!
//scala中type关键字的使用
type m = { def g():Unit}
def function(obj:m) = {obj.g()}
function(new {def g()= println("匿名类对象中的方法!")})
}

//对于init方法而言,传进来的参数或对象必须具备相应的fun()方法
def init(obj: {def fun():Unit}) = obj.fun()  //注意:fun方法是抽象方法
}
object A
{
def fun() = println("Spark Pk  Hadoop!" )
}
class Student
{
def fun() = println("Student should study Spark!")
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: