Scala 之 apply()

眉间皱痕 提交于 2020-03-10 07:34:22

学习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/
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!