value classes可用於實現類型安全而不需要拆箱。爲什麼scala value class#toString包含case class info?
我的印象是,在運行時這些類型/類將「不存在」,被視爲簡單類型(例如,在運行時,值類case class X(i: Int) extends AnyVal
將是簡單的Int
)。
但是,如果你調用一個值類實例的方法.toString
它會打印出類似這樣:
scala> val myValueClass = X(3)
myValueClass: X = 3
scala> myValueClass.toString
res5: String = X(3)
,所以我猜編譯器包含了一些信息,畢竟?