Scala中的apply方法

 

1.apply的场景

Scala中实例化一个类,可以不用new , 其原因 其实就是 apply 方法,具体原因 后边再讲:

 

Scala中的apply方法

 

在上句中Scala 生成Array对象, 会自动去调用 Array 这个伴生对象的 伴生类中的apply方法, 

 

 

2.先来看下apply方法的调用约定:

Scala中的apply方法

 

即 如果我们让一个类的实例化对象  或者一个单例对象,后边直接跟一个小括号并在括号中传递参数, eg:  类实例(参数) 或  单例对象(参数)   , 

 这种写法出现时,Scala会自动在该对象中 查找apply 方法,而且这个apply方法的参数和 调用时候写的 参数一致 (即:参数个数和类型一致)

 

eg:

 

class ApplyTest {
  def apply(name:String): Unit ={
    printf("called apply method , and name is %s",name)
  }
}
val test = new ApplyTest
test.apply("张三")

 

输出:

Scala中的apply方法

 

 

上一篇:理解js中的this


下一篇:箭头函数