Цикл Scala в обоих направлениях в зависимости от параметров

#scala #loops #for-loop

Вопрос:

В настоящее время я работаю над некоторой функцией, которая принимает два числа в Scala (в прошлом я работал со Scala только один раз в течение нескольких недель).

Мне нужно повторить цикл между двумя числами; a и b .

Итак if a = 0, b = 10 , я хочу сделать цикл из 0 to 10 , if a = 10, b = 0 , я хочу сделать цикл из 10 to 0 .

Я хочу сделать это наиболее эффективным способом, как я могу это сделать?

Ответ №1:

 (a to b by (if (a < b) 1 else -1)).foreach { x => ??? }
 

Комментарии:

1. Спасибо, приятель, я не совсем знал, как использовать .foreach { x => ??? } , поэтому я просто внедрил by (if (a < b) 1 else -1) его в свой существующий цикл.

2. if (a < b) 1 else -1 может быть написан (b-a).sign на языке Scala 3.