我正在使用 java 玩 2.0 大约一个月,但有一件事我真的无法理解。模板如何真正起作用?将参数传递给他们的最佳方式是什么?
有什么区别
@(name: String, value: String)
和
@(name: String)(value: String)
这只是为了方便吗?
我发现这个问题揭开了神秘的面纱,但它并没有说明我应该选择哪种方式。
我正在使用 java 玩 2.0 大约一个月,但有一件事我真的无法理解。模板如何真正起作用?将参数传递给他们的最佳方式是什么?
有什么区别
@(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>
})
在第一种情况下,您将多个参数传递给一个函数。在第二种情况下,您正在使用柯里化。根据维基百科:
在数学和计算机科学中,柯里化是一种转换具有多个参数(或参数的 n 元组)的函数的技术,使得它可以被称为一个函数链,每个函数都有一个参数(部分应用) . http://en.wikipedia.org/wiki/Currying
每个用例的最佳选择有所不同。
编辑:请注意,模板只是 Scala 函数。