假设我有一种方法可以根据 status
获取 student_subject
表查询,并且此 status
可能是“失败”
、“已通过”
、“正在进行”
。
如何使用一种方法而不是 3 种不同的方法来完成此操作?
是否可以在方法参数中声明接受什么类型的String
?
最佳答案
只需使用特征和单例
sealed trait Status //sealed doesn't allow to extend this trait in another compilation unit
case object Failed extends Status
case object Passed extends Status
case object Ongoing extends Status
def getStidentSubject(status: Status) = status match {
case Failed => ...
case Passed => ...
case Ongoing => ...
}
或者,您可以只匹配字符串,但它的类型安全性要差得多。
如果您需要 Scala 中更多类似枚举的功能(保留 ADT 的优势),我建议您使用 Enumeratum 库。
关于java - 有没有办法在 Scala 中的方法参数中声明一组指定的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43314026/