在Scala中,我可以像这样生成一个curried函数:
def multiply(m: Int)(n: Int): Int = (m + 1) * (n + 2)
Run Code Online (Sandbox Code Playgroud)
如果我想,我可以通过填充第一个参数来生成一个新函数,如下所示:
val timesTwo = multiply(1) _
Run Code Online (Sandbox Code Playgroud)
但是替换第二个参数而不是第一个参数的语法是什么?
val timesThree = multiply _ (1) // Incorrect Syntax
Run Code Online (Sandbox Code Playgroud)
更重要的是,为什么没有直接平行multiply(1) _?
val timesThree = multiply(_: Int)(1)
Run Code Online (Sandbox Code Playgroud)
要么
val timesThree = (x: Int) => multiply(x)(1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
458 次 |
| 最近记录: |