のは、私はこの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)
? この場合、valueクラスを使用する利点はありますか(追加のメソッドはありません)?