gpt4 book ai didi

scala - 在 Scala 中处理两个选项

转载 作者:行者123 更新时间:2023-12-01 09:57:51 26 4
gpt4 key购买 nike

我有 2 个选项,我需要取它们持有的值的平均值。

有可能缺少一个或两个。如果缺少其中一个值,我只会将另一个值作为平均值。但如果两者都缺失,我会求助于一些默认值。

如何以干净的方式做到这一点?

我可以使用 isEmpty 检查值的缺失,但是这与空检查不一样吗?

最佳答案

我想这是不言自明的:

val option1 = Some(12.0)
val option2 = None
val default = 0.0

val average = (option1, option2) match {
case (Some(val1), Some(val2)) => (val1 + val2) / 2
case (None, Some(val2)) => val2
case (Some(val1), None) => val1
case (None, None) => default
}

...但如果不是,基本思想是您构造一个选项元组,然后在该元组上进行模式匹配。

这有一个好处是明确捕获所有四个潜在案例+得到编译器的支持 - 自 Option是一个密封特性,编译器可以检查并确保覆盖了模式匹配的所有潜在分支。

关于scala - 在 Scala 中处理两个选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60649504/

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