Scala入门之高级类型:结构类型
2016-08-09 17:38
246 查看
结构类型
结构类型(Struture Type)通过利用反射机制为静态语言添加动态特性,从面使得参数类型不受限于某个已命名的的类型.直接看代码,更理解理解
package com.dt.scala.moguyun /** * Created by hlf on 2016/8/9. * 结构体类型其实可以看作是一个类,在函数调用时, * 直接通过new操作来创建一个结构体类型对象,当然它是匿名的。 * 因此,方法也可以传入一个实现了方法的类或单例对象 */ object StrutureType extends App { /** * 这里有个move方法,参数是结构类型,要求传入的是run方法 */ def move(m: {def run(): Unit}) = { println("when is my turn") //使用时把它当作类来看,直接点出这个匿名类的run方法。 m.run() } //因为可以看作是类,所以直接new出来也可以 move(new { def run() = println("i will never come here again!") }) //直接传入类,只要它符合结构类型 move(new Move()) //直接传入单例,只要它符合结构类型 move(Move) } class Move { def run() = println("I'm running quickly!") } object Move { def run() = println("I'm running slowly!") }
运行结果 when is my turn i will never come here again! when is my turn I'm running quickly! when is my turn I'm running slowly!
结构体类型还可以用type关键字进行声明,这里就不说了,觉得用得最多的还是传入类或单例。
相关文章推荐
- Scala入门到精通—— 第二节Scala基本类型及操作、程序控制结构
- Scala入门到精通——第二十三节 高级类型 (二)
- Scala入门到精通——第二十二节 高级类型 (一)
- Scala入门到精通——第二十二节 高级类型 (一)
- Scala入门到精通—— 第二节Scala基本类型及操作、程序控制结构
- Scala入门到精通——第二十四节 高级类型 (三)
- Scala入门到精通—— 第二节Scala基本类型及操作、程序控制结构
- Scala入门到精通——第二十四节 高级类型 (三)
- Scala入门之高级类型:this.type
- Scala入门到精通——第二十二节 高级类型 (一)
- Scala入门到精通—— 第二节Scala基本类型及操作、程序控制结构
- Scala入门到精通——第二十四节 高级类型 (三)
- Scala入门到精通——第二十四节 高级类型 (三)
- Scala入门学习笔记二-基本数据类型、程序控制结构
- Scala入门之高级类型:类型投影
- Scala入门到精通——第二十三节 高级类型 (二)
- C# 2010 从入门到精通 学习笔记8 第9章 使用枚举和结构来创建值类型
- Scala入门到精通——第二十一节 类型参数(三)-协变与逆变
- Scala入门到精通——第十节 Scala类层次结构、Traits初步
- Scala 深入浅出实战经典 第53讲:Scala中结构类型实战详解