gpt4 book ai didi

scala - 相当于 javascript 运算符 ||在斯卡拉

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

在 javascript 中,我们可以执行以下操作:

value = f1() || f2() || f3();

这将调用 f1,如果结果不为空,则将其赋值给 value。
仅当结果为空时,才会调用 f2,如果不为空,则将其赋值给 value。
...

这里给出了一种在 Scala 中实现此目的的方法: How to make this first-not-null-result function more elegant/concise?
创建一个 getFirstNNWithOption 函数,该函数调用每个函数直到不为空:
value = getFirstNNWithOption(List(f1 _, f2 _, f3 _))

然而,这不如 javascript ||运算符,更灵活。例如:
value = f1() || f2(3) || f3(44, 'ddd') || value4;

有没有办法在 Scala 中实现这一目标?

最佳答案

由于您正在使用返回 Option 的函数.

最好的解决方案是使用链接选项,就像这里解释的那样Option's chaining

所以你会做

f1().orElse(f2()).orElse(f3()).orElse(Some(4))

关于scala - 相当于 javascript 运算符 ||在斯卡拉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8725497/

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