Scala 移位运算符与加减运算符的优先级
在下文的场景下,其实本意是想取一个从 0 到 2 ^ 10 - 1 的一个随机数,但其实减号的优先级高于左移操作符,所以代码执行的其实是在 0 到 2 ^ 9 之间取一个随机数。
val N = 10
val random = scala.util.Random.nextInt(1 << N - 1)
如果想取一个从 0 到 2 ^ 10 - 1 的一个随机数,则:
val N = 10
val random = scala.util.Random.nextInt((1 << N) - 1)