考慮斯卡拉如下定義:關於斯卡拉
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