scala播放框架定义名为“新建”的操作

scala播放框架定义名为“新建”的操作,scala,playframework,Scala,Playframework,是否可以定义新的函数/操作名称 例如: def new=操作{…} 更确切地说,如果我想创建一个名为new的路由,我如何使用Scala和Play框架来实现这一点 附言 我想这是不可能的,因为new是一个关键字 对于创建新路由来说,映射到一个名称不完全相同但例如_new的操作就足够了 不管怎样,我之所以这么问,是因为可能有一种方法可以在Scala中定义一个名为new的函数。在Scala中,您可以在方法、变量或其他您喜欢的内容周围使用反勾号,为它们命名为保留关键字 因此,在您的情况下,您可以使用de

是否可以定义新的函数/操作名称

例如:

def new=操作{…}

更确切地说,如果我想创建一个名为new的路由,我如何使用Scala和Play框架来实现这一点

附言

我想这是不可能的,因为new是一个关键字

对于创建新路由来说,映射到一个名称不完全相同但例如_new的操作就足够了


不管怎样,我之所以这么问,是因为可能有一种方法可以在Scala中定义一个名为new的函数。

在Scala中,您可以在方法、变量或其他您喜欢的内容周围使用反勾号,为它们命名为保留关键字


因此,在您的情况下,您可以使用def`new`=???。

路由名称不需要与操作名称相同,因为new在Scala中是保留字,您不能直接将其用作操作名称,因此请重命名它,即:

def newAction = Action { ... }
然后使用如下路径:

GET   /new   controllers.Application.newAction

一般来说,对方法、视图、变量等的名称使用受限关键字是个坏主意,尤其是在工作了几个小时之后,它喜欢报复

您可以在new的周围加上反勾号,但我不确定routes编译器是否支持这种语法。您是对的。不幸的是,routes编译器不支持这种语法。也许是下一个版本是的,谢谢。但是play框架中的路由语法不接受它。对不起,我不知道play框架中的这个限制。谢谢你的提示。