gpt4 book ai didi

scala - 如何根据相互遵循的不同条件构建 Seq

转载 作者:行者123 更新时间:2023-12-04 16:50:31 27 4
gpt4 key购买 nike

我想根据不同条件的结果添加一个元素。
就像现在一样,我是这样做的:

val add1 = if(condition1) Seq(ENUM_ELEMENT_1) else Seq()
val add2 = if(condition2) Seq(ENUM_ELEMENT_2) else Seq()

return Seq(add1, add2).flatten

如果我在 Java 中,我只会在开始时创建一个空的 ArrayList() 并在代码遇到 ifs 时添加到此列表中。
但是在 Scala 中,我将不得不使用 Seq 的可变对象,我不知道它在这里是否合适。

最佳答案

声明左侧条件和右侧枚举的元组列表:

val conditions: Seq[(Boolean, Enum)] = List(
condition1 -> ENUM_ELEMENT1,
condition2 -> ENUM_ELEMENT2
)

然后你可以用 collect 减少它:
val result: Seq[String] =  conditions.collect{
case (true, v) => v
}

flatMap :
val result: Seq[Enum] = conditions.flatMap{
case (true, v) => Some(v)
case _ => None
}

关于scala - 如何根据相互遵循的不同条件构建 Seq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56172768/

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