gpt4 book ai didi

具有多种类型的Scala变量

转载 作者:行者123 更新时间:2023-12-04 13:01:15 24 4
gpt4 key购买 nike

Either在 scala 中,它允许变量具有 2 种类型的值。

val x: Either[String, Int] = Left("apple")

但是,我希望变量 x 有超过 2 种类型,例如 {String, Int, Double, List[String] } .
e.g. val x:[type can be either String, Int, Double or List[String]]
//So that I can store either String, Int, Double, List[String] value in x.

有没有办法实现这一目标?

最佳答案

IMO 最自然的表达方式是创建一个 ADT(代数数据类型):

sealed trait Foo
final case class Bar(s: String) extends Foo
final case class Baz(i: Int) extends Foo
final case class Fizz(d: Double) extends Foo
final case class Buzz(l: List[String]) extends Foo

现在您可以在 Foo 上进行模式匹配:
val f: Foo = ???
f match {
case Bar(s) => // String
case Baz(i) => // Int
case Fizz(d) => // Double
case Buzz(l) => // List[String]
}

关于具有多种类型的Scala变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43495047/

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