Вы можете сделать что-то подобное для большого количества параметров:
def demo(ints: Int*) =
ints.foldLeft((0, 1, 40)) { (acc, i) =>
if (acc._2 == i && acc._1 == 0) (1, acc._2, i * 10)
else (acc._1, acc._2 + 1, acc._3)
}._3
Я не уверен, что его легко прочитать, но если у вас много аргументов, возможно, это что-то для рассмотрения.Некоторые объяснения: в foldLeft мы начинаем с (0, 1, 40) 0 - это индикатор, если мы нашли возвращаемое значение, 1 - это индекс в целых числах, а 40 - результат, если будет найдено другое возвращаемое значение, он будетбыть замененнымЕсли «демо» - это простой способ объяснить другую проблему, которую вы имеете, вы должны заменить условие и его результат в соответствии с вашей реальной проблемой.