Scalaのケースクラスに定義したフィールドを別のケースクラスに使いまわす(継承みたいなこと)ことはできないでしょうか?
scala
1case class Person( 2 name: String, 3 gender: Boolean, 4 height: Double, 5 Weight: Double 6) 7 8case class Japanese( 9 name: String, // 重複 10 gender: String, // 重複 11 height: Double, // 重複 12 Weight: Double, // 重複 13 lang: String 14)
traitで型として使うことはできると思いますが、やりたいことのイメージは上記のようにフィールドをそのままコピーする感じで使いたいです。(単純にソースコードの記述量を減らす目的)
scala
1sealed trait Person { 2 def name: String, 3 def gender: Boolean, 4 def height: Double, 5 def weight: Double, 6} 7 8case class Japanese( 9 baseInfo: Person, 10 lang: String 11) extends Person 12 13// ↑だとJapanese.baseInfo.nameでアクセスできるが... 14 15// コーディング上の理由からJapanese.nameでアクセスしたい 16/* i.e. 17case class Japanese( 18 name: String, 19 gender: String, 20 height: Double, 21 Weight: Double, 22 lang: String 23) 24と等価なケースクラスとして使いたい 25*/
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。