2012-05-30 18 views
3

我正在用java播放2.0大約一個月,並且有一件事情我真的無法理解。模板是如何工作的?向他們傳遞params的最佳方式是什麼?在模板參數中播放2.0括號

什麼

@(name: String, value: String) 

@(name: String)(value: String) 

這只是爲了方便區別?

我發現this這個問題揭開了保密的面紗,但它並不能告訴我應該選擇哪種方式。

回答

4

典型的例子將是:

// main.scala.html

@(title: String)(content: Html) 
.... 

// index.scala.html

@main("Foo Title") { 
    <div>this content Html param passed in as a block {}</div> 
} 

與:@(title: String, content: Html)

語法是不是很好:

@main("Foo Title", { 
    <div>...</div> 
}) 
+0

還有一個問題:僅用於HTML的括號? –

+0

@AlexPovar在這種情況下,好吧,是的,方法參數是Html類型;-)你可以將它應用到任何地方,而不僅僅是模板層,它是Scala語言本身的一部分;如果你有def foo(a:Int)(b:Unit)= b,你可以稱它爲foo(1){println(「bar」)} – virtualeyes

3

在第一種情況下,您將多個參數傳遞給函數。在第二種情況下,你正在使用咖喱。根據Wikipedia:

在數學和計算機科學,鑽營是以這樣的方式變換函數可以接受多個參數(或參數的n元組)的技術,它可以被稱爲鏈每個函數都有一個參數(部分應用程序)。 http://en.wikipedia.org/wiki/Currying

什麼是最好的不同的用例。

編輯:請注意,模板只是Scala函數。

+0

O,謝謝。今天我頭腦功能編程太多:) –