scala的运算符

48 阅读3分钟

1. 算术运算符

Scala中的算术运算符: + - * / %

scss
 体验AI代码助手
 代码解读
复制代码
  println(10/3) // Int/Int,结果还是Int  3

  println(10/3.0) // Int/Double,结果是Double 3.333333

  println(10%2) //  10/2的余数 0

  println(10.5%2) //10/2的余数 0

2. 关系运算符

scala关系运算符会得到Bool值

go
 体验AI代码助手
 代码解读
复制代码
var b:Boolean = 1 == 1

println(b)  // true
println(1 != 2)  //true
println(1 > 2)  //false
println(1 < 2)  //true
println(2 >= 2) //true
println(2 <= 2) //true

3. 逻辑运算符

scala的逻辑运算符有与、或、非三种情况 与:&& 或:|| 非:!

scss
 体验AI代码助手
 代码解读
复制代码
println( 1 > 2 && 2 > 1) //false

println(3 < 5 || 5 > 3) //true

println( !(2 > 1)) //false

4. 短路运算

短路运算的核心思想是:由&&或||这两个运算符构建出来的表达式,只会对整个运算结果有决定作用的部分进行求值

Scala的短路运算法则:result=表达式1 运算符 表达式2

  1. 运算符为&&时:如果表达式1为false,则result=false,也就是说此时表达式1能够决定整个与运算的值,因此不会再去求表达式2的值。
  2. 运算符为||时:如果表达式1为true,则result=true,也就是说此时表达式1能够决定整个或运算的值,因此不会再去求表达式2的值。
scss
 体验AI代码助手
 代码解读
复制代码
object basic07 {
  def main(args: Array[String]): Unit = {
    def f() ={
      println("f")
      false
    }
    //运算符是&&时:
    1 > 2 && f() // false
    2 > 1 && f() // f
    
   //运算符是||时:
    1 > 1 || f() // f
    f() || 3 > 2 // f 因为f先被调用了
    var c = 3 > 2 || f()
    println(c)  //true
  }
}

5. 赋值运算符

  1. = 指定将右边操作数赋值给左边的操作
  2. += 相加后再赋值,将左右两边的操作数相加后再赋值给左边的操作数
  3. -= 相减后再赋值,将左右两边的操作数相减后再赋值给左边的操作数
  4. *= 相乘后再赋值,将左右两边的操作数相乘后再赋值给左边的操作数
  5. /= 相除后再赋值,将左右两边的操作数相除后再赋值给左边的操作数
  6. %= 求余后再赋值,将左右两边的操作数进行求余操作后再赋值给左边的操作数

sclala运算符的优先级

1. 乘除模 > 加减

2. 算术 > 关系 > 赋值

3. && > ||

scala
 体验AI代码助手
 代码解读
复制代码
val a = true
val b = false
val c = false
println(a || b && c) //先算&& 再算|| true

println((a || b) && c) // 先算括号里面的  false

练习题

scala
 体验AI代码助手
 代码解读
复制代码

var a = 1234
//在()内使用算术运算进行操作,以便输出对应结果
println( a/1000 ) //1
println( a/100%10 ) //2
println( a/10%10 ) //3
println( a%10 ) //4

作者:寒怜z
链接:juejin.cn/post/754803…
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。