Scala快速入门--apply语法糖
Posted 一只楠喃
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scala快速入门--apply语法糖相关的知识,希望对你有一定的参考价值。
apply语法糖的功能及实现
-
问题
val a1 = Array(1,2,3,4,5,6) val a2 = new Array[Int](6)
- 到底new不new?
apply方法的功能
- 可以在实现构建Class的实例的时候,不用写new关键字
apply方法的实现
-
在伴生对象Object中定义apply方法,支持重载,必须返回Class的实例
-
当不写new时,编译器会自动判断,在伴生对象中寻找对应的apply方法,通过apply方法new对象来实现
-
设计思想:缩短函数与对象的距离,让函数成为对象,让对象可以像函数一样使用
-
代码实现
class Person02(var name:String) { var age:Int = 20 //辅助构造 def this(name:String,age:Int){ this(name) this.age = age } } object Person02{ //传递一个参数,进行构造返回 def apply(name: String): Person02 = new Person02(name) //传递两个个参数,进行构造返回 def apply(name: String,age:Int): Person02 = new Person02(name,age) } object TestPerson02{ def main(args: Array[String]): Unit = { //通过正常的构造来实现对象构建 val p1 = new Person02("itcast") val p2 = new Person02("itcast",30) //通过语法糖来实现构造 val p3 = Person02("heima") val p4 = Person02("heima",40) } }
点个赞嘛!
以上是关于Scala快速入门--apply语法糖的主要内容,如果未能解决你的问题,请参考以下文章