我知道在編譯時內嵌在scala中的value class
。斯卡拉值類,用例
也許這樣
case class A(i: Int) extends AnyVal {
def +(that: A) = A(this.i + that.i)
}
A(1) + A(2) // After compile it equals to 1 + 2
,但它似乎不是什麼大不了的事給我。
它可能提高性能,但是,
調用this.i + that.i
不似乎遠遠低於i + i
爲什麼我們需要在斯卡拉value class
和任何使用情況???
*調用this.i + that.i似乎並不比我慢+ *你是如何確定這一點的?你是否微調了這些代碼? –
除了調用更快的事實(無論如何,最可能由JIT編譯器內聯),值類避免了對象實例化,因此減少了垃圾收集負載。 – Suma