【发布时间】:2021-08-18 18:29:50
【问题描述】:
我有一个字符串选项,它也可能为空。我编写了以下代码来处理不同的流程分支:
input match {
case Some(val) => {
val match {
case "sayHi" => "Hi"
case "sayHello" => "Hello"
case _ => extractFromAnotherInput
}
}
None => extractFromAnotherInput
}
private def extractFromAnotherInput = {
anotherInput match {
case a => ....
case b => ....
}
}
这是用函数式语言处理代码分支的好方法还是可以用更好的方法来完成?
【问题讨论】:
-
取决于您对 "good" 和 "better" 的含义。它还取决于您在每个分支上究竟做了什么。但总的来说,恕我直言,使用模式匹配是可以的。 - 但是,您可能需要检查更高阶的组合器,如
filter和map以减少重复。
标签: scala functional-programming pattern-matching