比方說,我有這樣的ADT:是否有利用價值類(沒有方法)與類型別名?
case class Person(id: String)
case class Kid(id: String, name: String)
我謹代表中更明確和類型安全的方式ID場。我有兩個選擇
1.類型別名
type PersonId = String
case class Person(id: PersonId)
case class Kid(id: String, name: PersonId)
2.值類
case class PersonId(id: String) extends AnyVal
case class Person(id: PersonId)
case class Kid(id: String, name: PersonId)
哪種方法更地道? 在這種情況下使用值類有沒有任何優勢(沒有額外的方法)?