2015-03-07 2 views

ответ

10

В 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" 
+0

ли это выделка? – barbara

+0

Да, несколько списков параметров - это форма каррирования. Узнайте больше о currying в Scala: http://www.codecommit.com/blog/scala/function-currying-in-scala –

+0

Я прочитаю это, спасибо. – barbara

Смежные вопросы