value-class

    9熱度

    1回答

    我想將scala的值類應用到我的一個項目中,因爲它們使我能夠在沒有大量開銷(我希望)的情況下豐富某些基本類型並保持類型安全。 object Position { implicit class Pos(val i: Int) extends AnyVal with Ordered[Pos] { def +(p: Pos): Pos = i + p.i def -(

    13熱度

    1回答

    Scala 2.10引入了值類,您可以通過將類擴展爲AnyVal來指定值類。價值類有許多限制,但其巨大優勢之一在於它們允許擴展方法,而不會造成創建新類的懲罰:除非需要裝箱,例如把值類放在一個數組中,它只是舊的類加上一組將類作爲第一個參數的方法。因此, implicit class Foo(val i: Int) extends AnyVal { def +*(j: Int) = i +

    1熱度

    3回答

    我知道值類沒有默認構造函數,因爲編譯器用零初始化此類中的所有元素。但是數組在值類不被初始化: value class c_LocationVal { public: double x, y, z; c_LocationVal(double i_x, double i_y, double i_z) {x = i_x; y = i_y; z = i_z;} }; type