【发布时间】:2014-07-18 11:58:19
【问题描述】:
我在 Scala 中发现的一个常见趋势是这样的:
def someFunction(a: SomeClass) = a match { ... }
从此a 再也不会被使用了。这种模式在 FP 中非常常见,以至于 OCaml 和 F# 有一个内置结构可以让您完全放弃该参数。
而不是这样写:
let someFunction a =
match a with
| 0 -> true
| _ -> false
你可以这么写:
let someFunction =
function
| 0 -> true
| _ -> false
所以我的问题是,是否可以在 Scala 中编写类似的东西?
def someFunction = function {
case 0 => true
case _ => false
}
保存一个不必要的参数。
我尝试将其编写为一个接受名称调用参数的函数,但 Scala 不允许我创建一个空的 match 块。
有可能吗?还是 scala 可能已经内置了类似的东西?
【问题讨论】:
标签: scala f# pattern-matching ocaml