Я реализовал, чтобы найти максимальное значение в списке. Я знаю, что в Scala вам не нужно использовать «return», просто отбросьте его. Так что я написал, как это,Как функция возврата Scala
def max(xs: List[Int]):Int={
if(xs.isEmpty) throw new java.util.NoSuchElementException
def f(cur_max:Int, xs:List[Int]):Int={
if(xs.isEmpty)
cur_max // <- it doesn't return value but just keep going below code.
if(cur_max < xs.head)
f(xs.head,xs.tail)
else
f(cur_max,xs.tail)
}
f(xs.head,xs)
}
Когда пройден до конца списка, он должен быть возвращен cur_max значения.
Однако он просто продолжает двигаться. Почему он не возвращает cur_max.
Чтобы исправить эту проблему, я добавляю выражение 'return', которое Scala не рекомендует ('return cur_max').
Должен ли второй, если блок быть else-if, а не только отдельный блок if? –