Scala 之 apply()

学习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/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐