gpt4 book ai didi

Scala:限制参数值

转载 作者:行者123 更新时间:2023-12-04 17:55:15 25 4
gpt4 key购买 nike

有没有办法限制 Scala 函数中参数的值?例如,如果我有一个名为 flag 的参数,并且我只希望用户能够提交值 0 或 1 作为该参数的有效值。

我知道我可以写一个简单的 if 语句来检查值并在 Not Acceptable 时返回某种错误消息,但我认为可能有更简洁的方法来做到这一点,比如当参数是在函数声明中命名。

最佳答案

你想要的是“依赖类型”。这种调用在支持它的语言中将是编译错误。不幸的是 scala 不支持它。

两种典型的解决方法是使用 ADT 而不是较大的类型,或者使用具有受限构造方法的包装器。

object ZeroOrOne {
def apply(i: Int): Option[ZeroOrOne] = if (i == 0 || i == 1) Some(ZeroOrOne(i)) else None
}
case class ZeroOrOne private (i: Int)
def doStuff(zo: ZeroOrOne) { // use zo.i }

sealed trait EnableStatus
case object Enabled extends EnableStatus
case object Disabled extends EnableStatus

def setEnabled(es: EnableStatus)

关于Scala:限制参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31546482/

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