在 Scala 中使用空值处理以下情况的正确方法是什么?该getField()和generateMetric()方法返回一个字符串。如果它返回一个 Option 我可能可以在这里应用模式匹配。
在Java我通常是这样制作的:
String metric_1 = null;
String metric_2 = null;
if (myObject.getField() != null) {
metric_1 = myObject.getField();
} else {
metric_2 = generateMetric();
}
Run Code Online (Sandbox Code Playgroud)
可以null包含在 中的值Option,例如:
val isNull = null
val isNotNull = "hello"
println(Option(isNull)) // None
println(Option(isNotNull)) // Some(hello)
Run Code Online (Sandbox Code Playgroud)
查看这篇文章:NO NULL VALUES
您的示例可能如下所示:
val metric =
Option(myObject.getField()).getOrElse(generateMetric())
Run Code Online (Sandbox Code Playgroud)
null。null。