В том же выражении одновременно используйте значение и присваивайте переменную в Scala

Есть ли способ в Scala присвоить переменной значение и в то же время использовать значение в выражении? Вот так...

java.lang.Math.abs(scala.util.Random.nextInt()) / {val num = java.lang.Math.pow(10, (java.lang.Math.abs(scala.util.Random.nextInt() % 5) + 1)) } * num

Я получил эту ошибку...

cannot be applied to (Unit)
       java.lang.Math.abs(scala.util.Random.nextInt()) / {val num = java.lang.Math.pow(10, java.lang.Math.abs(scala.util.Random.nextInt() % 7)) } * num

Чтобы округлить до переменной степени значения «10», я хочу присвоить некоторое случайное целое число переменной «num», используя одно и то же значение в выражении одновременно. Таким образом, я могу убедиться, что num будет таким же значением, что и делитель, и множитель. Я знаю, что видел что-то в scala, что заставило меня думать, что я могу это сделать...


person uh_big_mike_boi    schedule 15.11.2017    source источник


Ответы (1)


Вы можете поместить свои числа в двухэлементную коллекцию, а затем reduce() ее.

Seq(Math.abs(util.Random.nextInt())
   ,Math.pow(10, Math.abs(util.Random.nextInt() % 5) + 1))
  .reduce((a,b) => /*use as many a's and b's as needed*/)
person jwvh    schedule 15.11.2017