Предполагая, что мы имеем следующий класс case:
case class CasePerson(firstName: String)
И мы также определяем для него объект-компаньон:
object CasePerson {
def apply() = new CasePerson( "XYZ" )
}
Обратите внимание, что в приведенном выше примере я явно определил объект-компаньон с помощью метода apply
, не определяя метод применения по умолчанию:
// This "default" apply has the same argument as the primary constructor of the case class
def apply(firstName : String) = new CasePerson(firstName)
Q: Итак, где применяется Scala этот "по умолчанию"? Я явно определил объект-компаньон здесь без применения по умолчанию, и компилятор все еще знает, как это выполнить:
val casePerson = CasePerson("PQR")
Как это работает?