gpt4 book ai didi

scala - 我应该创建特征来表示模型的枚举值吗?

转载 作者:行者123 更新时间:2023-12-03 04:40:36 24 4
gpt4 key购买 nike

假设我有一个像这样的模型:

case class User(
id: Int,
name: String,
userType: Int)

我应该这样做吗:

sealed trait UserType
case object Member() extends UserType
case object Anonymous() extends UserType

我还应该以某种方式为每个 UserType 关联一个值。

然后我将更改 User case 类以具有 UserType 属性而不是 int?

我想我会为 slick 创建一个隐式转换器,我相信它将是从 int 到 UserType 的 MappedColumnType。

更新这是为了使用灵活的数据库访问。

最佳答案

我会反过来做。我将根据扩展 User 的场景为用户指定一个类型:

sealed trait User
case class NormalUser(name: String, id: Int) extends User
case class SuperUser(name: String, id: Int, superPowers: Map[String, String]) extends User

然后在需要时对实际的User类型进行模式匹配。

关于scala - 我应该创建特征来表示模型的枚举值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42204673/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com