// trait で表現した場合 sealed trait UserType { val label: String } object UserType { case object Admin extends UserType { val label = "管理者" } case object Regular extends UserType { val label = "一般会員" } case object Guest extends UserType { val label = "ゲスト" } }