我正在读school/basics.html的Scala学校基础教程。
我试图理解这两种定义之间的区别。
此外,如果有人可以解释在这种情况下的竞争与部分应用。
def multiply(m: Int)(n: Int): Int = m * n
和
def multiply(m: Int,n: Int): Int = m * n
发布于 2015-09-29 05:56:24
不同之处在于您如何真正地调用此方法。在第二种情况下,您唯一的选择是同时传递两个参数,比如multiply(2,2)。在first情况下,您可以传递一个参数并获得函数Int => Int,然后用另一个参数调用它:
val f: Int => Int = multiply(2) _
f(2) // 4
f(3) // 6
f(525) // 1050咖喱方法的真正强大之处在于第二个参数是隐式的,因此不必显式传递它。
implicit val x = 2
def multiply(m: Int)(implicit n: Int): Int = m * n
multiply(5) //10https://stackoverflow.com/questions/32835267
复制相似问题