Estoy tratando de comprender el objetivo de esta característica de lenguaje de varias cláusulas de parámetros y por qué la usaría. Por ejemplo, ¿cuál es la diferencia entre estas dos funciones realmente?¿Cuál es el sentido de las cláusulas de parámetros múltiples en las definiciones de funciones en Scala?
class WTF {
def TwoParamClauses(x : Int)(y: Int) = x + y
def OneParamClause(x: Int, y : Int) = x + y
}
>> val underTest = new WTF
>> underTest.TwoParamClauses(1)(1) // result is '2'
>> underTest.OneParamClause(1,1) // result is '2'
Hay algo en esto en el Scala specification at point 4.6. Ve si eso tiene sentido para ti.
NB: la especificación llama a estas 'cláusulas de parámetros', pero creo que algunas personas también pueden llamarlas 'listas de parámetros'.
programador Nnon-scala aquí. Tal vez es solo un estilo diferente? No todo tiene que tener solo una forma de hacerlo. – apscience
bien, hay un poco de respuesta a esto en la respuesta de Daniel Sobral a http://stackoverflow.com/questions/4697404/scala-currying-by-nested-functions-or-by-multiple-parameter-lists –
aceptado la respuesta aquí probablemente responda a esta pregunta: (1) para que no tenga que especificar el tipo de la primera cláusula param en la segunda cláusula; (2) para la flexibilidad del diseño de la biblioteca; (3) para facilitar el currado: http://stackoverflow.com/questions/4915027/two-ways-of-currying-in-scala-whats-the-use-case-for-each –