Ошибка: (63, 3) несоответствие типов;найдено: требуется блок: двухместный - PullRequest
0 голосов
/ 26 сентября 2018
val Match: (String) => Double = (address: String) => {
    val address =
    if (address == null)
      empty
    else
      Address
}

в этом коде я получаю эту ошибку

несоответствие типов;найдено: Требуемая единица: двухместный

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

В качестве альтернативы,

val empty = 0.2; val Address = 0.0

val Match: (String) => Double =
 (address:String)=>address match{
 case null => empty
 case _ => Address
 }

В Scala REPL:

scala> Match(null)
res79: Double = 0.2

scala> Match("")
res80: Double = 0.0

scala> Match("yoohh")
res81: Double = 0.0
0 голосов
/ 26 сентября 2018

типом возврата функции Match является функция, которая принимает string и возвращает double

(String) => Double

, и вы упомянули в комментарии

val empty = 0.2, val Address = 0.0

, поэтому правильное определение функции должно быть следующим:

val Match: (String) => Double = (address: String) => {
   if (address == null)
      empty
    else
      Address
}

ошибки если вы не возвращали двойное значение из функции, вычисленной в выражении i f else, и что вы использовали то же имя переменной, что и входной аргумент внутри области действия функции, например val address =

можно использовать присваивание и вернуть это назначенное значение тоже

val Match: (String) => Double = (address: String) => {
   val addr = if (address == null)
      empty
    else
      Address
  addr
}

Надеюсь, ответ полезен

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...