Scala隐式转换之隐式转换函数
2017-10-29 15:54
417 查看
/** * 隐式转换是Scala中一种特殊的功能,它能将一种数据类型转换成另外一种数据类型, * 然后这种数据类型将拥有另外一种数据类型的所有方法,可以看成是对类的一种增强。 * 隐式转换分为两种: * 1.隐式转换函数 * 2.隐式转换值 * * 定义隐式转换的关键字是implicit * 隐式转换的命名方式是one2one的形式 */ class SpecialPeron(var name: String) class Older(var name: String) class Student(var name: String) class Teach(var name: String) object ImplicitDemo { def buySpecialTickWindow(peron: SpecialPeron): Unit = { if (peron != null) { println(peron.name + "购买了一张特殊票!") } else { println("你不是特殊人群,不能在此买票!") } } //隐式转换函数 implicit def any2SpecialPerson(any: Any): SpecialPeron = { /** * if条件结构 */ // if (any.isInstanceOf[Older]) { // new SpecialPeron(any.asInstanceOf[Older].name) // } else if (any.isInstanceOf[Student]) { // new SpecialPeron(any.asInstanceOf[Student].name) // } else { // null // } /** * 模式匹配 */ any match { case any: Older => new SpecialPeron(any.asInstanceOf[Older].name) case any: Student => new SpecialPeron(any.asInstanceOf[Student].name) case _ => null } } def main(args: Array[String]): Unit = { val older = new Older("老人") val student = new Student("学生") val teacher = new Teach("讲师") buySpecialTickWindow(older) buySpecialTickWindow(student) buySpecialTickWindow(teacher) } }
相关文章推荐
- Scala 隐式转换 重要一点 什么是隐式转换以及隐式转换带来的好处
- scala隐式转换1
- Scala 之隐式转换函数(十)
- 大数据Spark “蘑菇云”行动前传Scala专家之路第28课:Scala隐式转换内幕实践解密
- Scala入门到精通——第十八节 隐式转换与隐式参数(一)
- 第59讲:Scala中隐式转换初体验实战详解以及隐式转换在Spark中的应用源码解析学习笔记
- Scala之隐式转换
- scala的隐式转换学习总结(详细)
- 深入理解Scala的隐式转换系统
- Scala 隐式转换规则
- Scala隐式转换和隐式参数
- scala入门-10 隐式转换、隐式参数、隐式类
- Scala深入浅出进阶经典 第65讲:Scala中隐式转换内幕操作规则揭秘、最佳实践及其在Spark中的应用源码解析
- 65.Scala中隐式转换内幕操作规则揭秘、最佳实践及其在Spark中的应用源码解析
- Step into Scala - 26 - 隐式参数,隐式转换与 DSL
- scala 隐式转换(一)
- Scala学习整理[第二十-二十一章 抽象成员和隐式转换]<Programming In Scala>
- Scala--隐式转换和隐式参数
- scala中模式匹配、异常处理、高阶函数、偏函数、隐式转换
- Scala隐式转换