2011-12-21 57 views
0

之间的差异在超我定义的函数:斯卡拉理解这两个函数

def render(model: JsonModel) { 
    if (!model.isOk()) { 
     BadRequest(model.toJsonString()).withHeaders("Content-Type" -> "application/json; charset=utf-8") 
    } else { 
     Ok(model.toJsonString()).withHeaders("Content-Type" -> "application/json; charset=utf-8") 
    } 
    } 

我想调用这个函数在我的子类:

def test(model: JsonModel) = Action { implicit request => 
    render(model) 
} 

这不工作,抱怨 - 类型不匹配;发现:股需要

,如果我摆脱隐含请求

def test(model: JsonModel) = Action { 
    render(model) 
} 

看来工作,但我有时我需要访问请求

+0

请添加*完整*错误消息。 – 2011-12-22 01:28:07

回答

4

你的问题是在这里:

def render(model: JsonModel) { 

render方法返回Unit。我知道,不看任何其他线路,因为它缺少一个等号。如果你这样写:

def render(model: JsonModel) = { 

然后它会返回其他东西,我期望是什么是必需的。

+0

感谢它那样的小事 – chiappone 2011-12-22 17:17:13

+2

@chiappone除了众多认为它很棒的人以外,每个人都鄙视程序语法表示法。因此,这是不可接触的,但个人而言,我认为这是可鄙的。我认为斯卡拉2.10至少会有警告。 – 2011-12-22 19:26:15