我有一些代碼,看起來像這樣:Scala的應用方法僅對隱藏新關鍵字有用嗎?
object Money {
def apply(dollars: BigInt, cents: BigInt) = new Money(dollars, cents)
}
class Money(dollars: BigInt, cents: BigInt) {
override def toString() = dollars + "." + cents
}
我想了解的應用功能的好處,但至今只能把它看作一個類型的語法糖,讓我不要需要使用新的操作符來構造一個Money對象。也就是說,我沒有看到在應用功能有很大的好處,因爲所有它做對我來說是把這個:
val money = new Money(2, 50)
到:
val money = Money(2, 50)
我缺少的東西?
它就像一個Factory方法,可以在不更改所有用戶代碼的情況下更改該方法(例如返回Money的子類)。 –