大数据系列修炼-Scala课程53
2016-09-27 15:21
519 查看
大数据系列修炼-Scala课程53
核心内容:
1、Scala中的结构类型实战解析
1>结构类型是指一组关于抽象的方法或字段或类型的规格的说明,这些抽象的方法或字段或类型是我们传进的参数或者说
要使用的对象必须具备的:即传进来的参数或对象必须具备相应的抽象方法或字段或类型。
简单来说:结构类型就是限制参数是某种类型.
2>def init(obj: {def fun():Unit}) = obj.fun() 含义:对于init方法而言,传进来的参数或对象必须具备相应的fun()方法;反之,只要
传进来的参数或对象具有fun方法,就可以作为参数使用。
3>Scala中的结构类型就是动态编程语言中的鸭子类型。
4>在Scala的结构类型当中,我们并不关心传进来的对象的类型,我们对传进来的参数或对象只有一个要求:传进来的参数或对象具有
某种行为。
5>type关键字将=后面的内容命名为一个别名,即若使用这个内容,可以直接用其别名代替。
实例程序:
核心内容:
1、Scala中的结构类型实战解析
1、Scala中的结构类型操作代码实战 |
要使用的对象必须具备的:即传进来的参数或对象必须具备相应的抽象方法或字段或类型。
简单来说:结构类型就是限制参数是某种类型.
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!") }
相关文章推荐
- 大数据系列修炼-Scala课程28
- 大数据系列修炼-Scala课程105
- 大数据系列修炼-Scala课程05
- 大数据系列修炼-Scala课程36
- 大数据系列修炼-Scala课程37
- 大数据系列修炼-Scala课程90
- 大数据系列修炼-Scala课程106
- 大数据系列修炼-Scala课程08
- 大数据系列修炼-Scala课程38
- 大数据系列修炼-Scala课程45
- 大数据系列修炼-Scala课程07
- 大数据系列修炼-Scala课程85
- 大数据系列修炼-Scala课程91
- 大数据系列修炼-Scala课程107
- 大数据系列修炼-Scala课程74
- 大数据系列修炼-Scala课程77
- 大数据系列修炼-Scala课程80
- 大数据系列修炼-Scala课程92
- 大数据系列修炼-Scala课程16(2)
- 大数据系列修炼-Scala课程108