这个Scala构造在做什么?
我一直在用Play!框架,并希望使用Scala进行尝试。 我从一本Scala的书开始,但这是最基本的剧本!这个样本让我完全困惑:这个Scala构造在做什么?,scala,playframework,Scala,Playframework,我一直在用Play!框架,并希望使用Scala进行尝试。 我从一本Scala的书开始,但这是最基本的剧本!这个样本让我完全困惑: def index(): Action[AnyContent] = Action { implicit request => Ok(views.html.index()) } 什么是Scala结构的游戏!使用here?我知道我们正在定义一个函数,该函数返回一个带有通用参数AnyContent的Action。但下一部分让我感到困惑。在这种情况下,
def index(): Action[AnyContent] = Action { implicit request =>
Ok(views.html.index())
}
什么是Scala结构的游戏!使用here?我知道我们正在定义一个函数,该函数返回一个带有通用参数AnyContent
的Action
。但下一部分让我感到困惑。在这种情况下,作业是什么意思
如果我转到动作的定义[AnyContent],它的定义是trait动作[A]扩展了基本动作{…}
如果我去定义等于之后的动作,它的定义是:
trait BaseController extends BaseControllerHelpers {
/**
* The default ActionBuilder. Used to construct an action, for example:
*
* {{{
* def foo(query: String) = Action {
* Ok
* }
* }}}
*
* This is meant to be a replacement for the now-deprecated Action object, and can be used in the same way.
*/
def Action: ActionBuilder[Request, AnyContent] = controllerComponents.actionBuilder
}
注意:我对所使用的Scala结构感兴趣,我不在乎玩什么!实际上是这样做的,我有点理解。您实际上是在调用
Action.apply()
,这是在ActionBuilder
中定义的。apply()
函数的第一个也是唯一的一个参数是函数request=>Ok(…)
您实际上调用的是Action.apply()
,它在ActionBuilder
中定义。apply()
函数的第一个也是唯一一个参数是函数request=>Ok(…)
它不是赋值,=
这里将方法签名与主体分离,就像你在def Action
中看到的那样@LuisMiguelMejíaSuárez在最近的游戏版本中,它不再是对象,相反,它在注入的ActionBuilder
上调用apply
,看它不是赋值,=
这里将方法签名与主体分离,就像你在def Action
@LuisMiguelMejíaSuárez中看到的那样,它在最近的游戏版本中不再是对象,相反,它在注入的ActionBuilder
上调用apply
,请参阅