gpt4 book ai didi

scala 更好的映射 getOrElse 语法

转载 作者:行者123 更新时间:2023-12-03 04:40:36 27 4
gpt4 key购买 nike

下面的代码有更好的写法吗?

val t = map.get('type).getOrElse(""); 
if (t != "") "prefix" + t;

对内联代码感兴趣

val t = map.get('type).getOrElse("").????

最佳答案

Map 有自己的 getOrElse 方法,因此您只需编写以下内容:

val t = map.getOrElse('type, "")

它完成与第一个示例中 t 的定义相同的事情。

<小时/>

为了解决您的评论:如果您知道您的 map 永远不会包含空字符串作为值,您可以使用以下内容添加“前缀”:

map.get('type).map("prefix" + _).getOrElse("")

或者,如果您使用的是 Scala 2.10:

map.get('type).fold("")("prefix" + _)

如果您的 map 可以具有""值,则此版本的行为将与您的稍有不同,因为它将向这些值添加前缀。如果您希望在一行中获得与您的版本完全相同的行为,您可以编写以下内容:

map.get('type).filter(_.nonEmpty).map("prefix" + _).getOrElse("")

不过,这可能不是必需的 - 听起来您不希望 map 中包含空字符串。

关于scala 更好的映射 getOrElse 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12504650/

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