我在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可能已经内置了这样的东西?
使用函数而不是方法:
val someFunction: Int => Boolean = {
case 0 => true
case _ => false
}
您必须显式地编写类型注释,但这一定不是缺点-对于API的使用,它是有用的文档。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句