Scala понимает разницу между этими двумя функциями - PullRequest
0 голосов
/ 22 декабря 2011

В суперклассе я определил функцию:

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 Ответ

4 голосов
/ 22 декабря 2011

Ваша проблема здесь:

def render(model: JsonModel) {

Метод render возвращает Unit. Я знаю это, не глядя ни на какую другую строку, потому что в ней отсутствует знак равенства. Если вы написали это так:

def render(model: JsonModel) = {

Тогда он вернул бы что-то еще, что я ожидаю, это то, что требуется.

...