gpt4 book ai didi

scala - 如果值不为空,则添加到列表

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

我有一个可以返回空值的函数:

def func(arg: AnyRef): String = {
...
}

我想将结果添加到列表中(如果它不为空):

...
val l = func(o)
if (l != null)
list :+= l
....

def func(arg: AnyRef): Option[String] = {
...
}
...
func(o).filter(_ != null).map(f => list :+= f)
...

但是看起来太重了。

还有更好的解决方案吗?

最佳答案

您只需将该选项附加到列表中即可。这是因为 Option 可以被视为一个 Iterable(None 为空,Some 为一个元素) )感谢隐式转换Option.option2Iterable

因此,对于选项变体(func 的第二个版本),只需执行以下操作:

list ++= func(o)

对于其他变体(func 的第一个版本),您可以首先使用 Option.applyfunc 的返回值转换为选项(将 null 转换为 None 或用 Some 包装该值),然后按照上面的操作。这给出:

list ++= Option(func(o))

关于scala - 如果值不为空,则添加到列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14438021/

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