私は Java で play 2.0 を約 1 か月使用していますが、本当に理解できないことが 1 つあります。テンプレートは実際にどのように機能しますか? それらにパラメーターを渡す最良の方法は何ですか?
違いは何ですか
@(name: String, value: String)
と
@(name: String)(value: String)
これは便宜上だけですか?
秘密のベールを持ち上げるこの質問を見つけましたが、どの方法を選択すべきかはわかりません.
私は Java で play 2.0 を約 1 か月使用していますが、本当に理解できないことが 1 つあります。テンプレートは実際にどのように機能しますか? それらにパラメーターを渡す最良の方法は何ですか?
違いは何ですか
@(name: String, value: String)
と
@(name: String)(value: String)
これは便宜上だけですか?
秘密のベールを持ち上げるこの質問を見つけましたが、どの方法を選択すべきかはわかりません.
標準的な例は次のとおりです。
// 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>
})
最初のケースでは、関数に複数のパラメーターを渡しています。2 番目のケースでは、カリー化を使用しています。ウィキペディアによると:
数学とコンピュータ サイエンスでは、カリー化とは、複数の引数 (または引数の n タプル) を取る関数を、それぞれが 1 つの引数を持つ一連の関数として呼び出せるように変換する手法です (部分適用)。 . http://en.wikipedia.org/wiki/Currying
ユースケースごとに最適なものは異なります。
編集: テンプレートは単なる Scala 関数であることに注意してください。