在同一表达式中,同时在Scala

时间:2017-11-15 08:32:19

标签: scala syntax scala-2.10 scala-2.11 scala-2.12

在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中看到的东西让我觉得我可以做到这一点......

1 个答案:

答案 0 :(得分:1)

您可以将您的nums放在一个2元素的集合中,然后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*/)