В Scala методы могут иметь несколько списков параметров:
def f(x: Int)(y: Int, z: String)(w: Boolean) = "foo"
f(1)(2, "bar")(true) //returns "foo"
Несколько списков параметров полезны по нескольким причинам. Вы можете узнать о них подробнее на вопрос this.
Кроме того, в Scala, пустой список аргументов необязательно может быть опущено:
def f() = "foo"
f //returns "foo"
Выбор с помощью пустого списка параметров, как правило, регулируется соглашением, как объяснено в this вопрос.
Таким образом, если у вас есть несколько пустых списков аргументов, вы можете пропустить какой-либо из них:
def f()()() = "foo"
f()()() //returns "foo"
f()() //returns "foo"
f() //returns "foo"
f //returns "foo"
ли это выделка? – barbara
Да, несколько списков параметров - это форма каррирования. Узнайте больше о currying в Scala: http://www.codecommit.com/blog/scala/function-currying-in-scala –
Я прочитаю это, спасибо. – barbara