考虑斯卡拉如下定义:关于斯卡拉
val f = ((_: Int) + 1).toString()
代码分配到F函数字面_ + 1,这是很自然的,除了字符串表示,这不是我想要的。我打算定义一个接受int参数的函数,将其加1并返回其字符串格式。
消除歧义,我必须写一个lambda表达式有明确参数:
val g = (x: Int) => (x + 1).toString()
因此我可以断定,占位符语法不适合复杂的函数文本? 或者是否存在一些规定函数文字范围的规则?这似乎占位符不能嵌套在括号(除了需要用于定义其类型的那些)功能字面
谢谢。那么我也在寻找什么。我曾预料过类似于Haskell中的点运算符,但什么也没有发现。 – weidi 2012-01-29 12:18:05
@weidi,'Function1#compose'相当于Haskell中的'.'。但是由于Scala的从左到右的流式推理,“Funtion1#和Then”使用起来更方便。 – missingfaktor 2012-01-29 12:51:22