gpt4 book ai didi

Scala:类似 Option (Some, None) 但具有三种状态:Some、None、Unknown

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

我需要返回值,当有人请求值时,告诉他们以下三件事之一:

  1. 这是值
  2. 没有任何值(value)
  3. 我们没有关于该值的信息(未知)

情况 2 与情况 3 略有不同。示例:

val radio = car.radioType
  1. 我们知道该值:返回 radio 类型,例如“pioneer”
  2. b.没有值:返回 None
  3. c.我们缺少有关这辆车的数据,我们不知道它是否有 radio

我想我可以扩展 scala 的 None 并创建一个 Unknown,但这似乎不可能。

建议?

谢谢!

更新:

理想情况下,我希望能够编写这样的代码:

car.radioType match { 
case Unknown =>
case None =>
case Some(radioType : RadioType) =>
}

最佳答案

这是一个准系统的实现。您可能想查看 Option 类的源代码以了解一些附加功能:

package example

object App extends Application {
val x: TriOption[String] = TriUnknown

x match {
case TriSome(s) => println("found: " + s)
case TriNone => println("none")
case TriUnknown => println("unknown")
}
}

sealed abstract class TriOption[+A]
final case class TriSome[+A](x: A) extends TriOption[A]
final case object TriNone extends TriOption[Nothing]
final case object TriUnknown extends TriOption[Nothing]

关于Scala:类似 Option (Some, None) 但具有三种状态:Some、None、Unknown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1738062/

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