Man*_*oid 0 scala pattern-matching
我必须根据模式匹配块中的情况执行一些操作,但仅限于选择性情况,其余情况无需执行任何操作。那么剩下的情况就直接 return() 就可以了吗?像这样的东西:
val x = ....
val y = ....
(x, y) match {
case (Some(number), Some(text)) => {
......
}
case (Some(number), None) => {
......
}
case (_, _) => () // do nothing
}
Run Code Online (Sandbox Code Playgroud)
取决于你所说的“好”是什么意思。如果您问它是否可以编译,您可以自己轻松回答这个问题,只需在 REPL 中运行一些片段,然后发现您甚至不需要返回一个单元。像这样的东西工作得很好:
"foo" match {
"bar" => "baz"
"bat" => 1500
_ =>
}
Run Code Online (Sandbox Code Playgroud)
然而,如果您所说的“好”是指这是否是一个好主意,那么答案是“可能不是”。正如评论中提到的,这不是类型安全的,而且纯粹是副作用并且不是引用透明的。可能有更好的方法来做你想做的事。