学习Scala之前,在JavaScript里常使用apply()方法。
class Account private (val id: Int, initialBalance: Double) {
private var balance = initialBalance
}
object Account {
def newUniqueNumber(): Int = {
// 随便写的
9527
}
def apply(initialBalance: Double) = new Account(newUniqueNumber(), initialBalance)
}
object Main {
def main(args: Array[String]): Unit = {
// 注意:没有new
val acct = Account(1000.0)
// a是一个长度为1的数组,第一个元素值为100
var a = Array(100)
println("a.length=" + a.length)
println("a(0)=" + a(0))
// b是一个长度为100的数组,数组里的元素都是null
var b = new Array(100)
println("b.length=" + b.length)
println("b(0)=" + b(0))
}
}
- https://blog.matthewrathbone.com/2017/03/06/scala-object-apply-functions.html
- https://javabeat.net/using-apply-unapply-methods-scala/