在模板参数中播放2.0括号

时间:2012-05-30 04:17:29

标签: java scala playframework-2.0

我正在使用java的play 2.0大约一个月,有一件事我真的无法理解。模板如何真正起作用?将params传递给他们的最佳方法是什么?

之间有什么区别
@(name: String, value: String)

@(name: String)(value: String)

这只是为了方便吗?

我发现this问题揭开了秘密的面纱,但它并没有说明我应该选择哪种方式。

2 个答案:

答案 0 :(得分: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>
}

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

语法不太好:

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

答案 1 :(得分:3)

在第一种情况下,您将多个参数传递给函数。在第二种情况下,您使用currying。根据维基百科:

  

在数学和计算机科学中,currying是一种转换函数的技术,该函数采用多个参数(或参数的n元组),使得它可以被称为一个函数链,每个参数都有一个参数(部分申请)。 http://en.wikipedia.org/wiki/Currying

每个用例最好的不同。

编辑:请注意,模板只是Scala函数。