是否可以定义函数/操作名称new
?
例如:
def new = Action { ... }
更确切地说,如果我想创建一个名为new
的路由,我如何使用Scala和Play框架来实现这一目标?
P.S。
我认为由于new
是一个关键字,因此无法实现。
为了创建路线new
,只需映射到名称不完全相同的动作,例如_new
。
无论如何我在问,因为也许有一种方法可以在Scala中定义一个名为new的函数。
答案 0 :(得分:4)
在Scala中,你可以使用方法,变量或其他你喜欢的反引号来为它们提供保留关键字的名称。
因此,在您的情况下,您可以使用def `new` = ???
。
答案 1 :(得分:3)
路线名称并不需要与操作名称相同,因为new
是Scala中的保留字,您无法将其直接用作操作名称,因此将其重命名为:
def newAction = Action { ... }
然后使用如下路线:
GET /new controllers.Application.newAction
一般情况下,对方法,视图,变量等名称使用受限制的关键字是个坏主意,它特别喜欢在几个小时的工作后报复。