Scala了解这两个函数之间的区别

时间:2011-12-21 23:05:26

标签: scala playframework-2.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)  
}

它似乎有用,但有时我需要访问请求

1 个答案:

答案 0 :(得分:4)

你的问题在这里:

def render(model: JsonModel) {

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

def render(model: JsonModel) = {

然后它会返回其他内容,我希望这是必需的。