【发布时间】:2013-06-03 15:00:38
【问题描述】:
假设我有一个对象,其方法名为 protect。
这应该是一个带有JValue => JValue(非泛型参数)的函数。
def protect(func: (JValue) => JValue) = {
if (Something.is) {
InMemoryResponse(Array(), Nil, Nil, 200)
} else {
InMemoryResponse(Array(), Nil, Nil, 401)
}
}
我现在如何调用传递其原始参数的函数?
目标是在响应 REST 请求之前检查用户会话是否存在。如果没有,则将自动返回 401 Forbidden,如下所示。在这种情况下,我想将Users.getUsers 作为参数函数传递,并将limit 作为参数传递给函数。
所以在protect内部,如果Session存在,函数就会执行并显示出来。
serve {
case "user" :: limit :: Nil JsonGet _ =>
AuthorizedReq.protect(json => Users.getUsers(limit))
【问题讨论】:
-
请不要对真/假使用模式匹配:-(简单的
if就足够了 -
if (Something.is) trueCaseResult else falseCaseResult。此外,不要在case表达式周围加上大括号。一般来说,要避免多余的标点符号——它通常只是噪音。
标签: scala