Scala的运算符

80 阅读2分钟

九月的第三个星期,天气不错的一天

算数运算符(比较简单)

  1. 算数运算符有:+ - * / %
  2. +-*/这四个与普通运算一样,%是除了一个数之后取余。
  3. /只取整数,如5/3=1。

关系运算符

关系运算符有:等于(==),不等于(!=),大于(>),小于(<),大于等于(>=),小于等于(<=)

逻辑运算符

  1. Scala中的逻辑运算跟Java中一样,有与、或、非三种情况
    1. 与:&& 运算表达式有一个为假,则整个表达式为假false
    2. 或:|| 运算表达式有一个为真,则整个表达式为真
    3. 非:! 就是取反的意思,与参与表达式相反。

短路运算符

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

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

  • 运算符为&&时:如果表达式1为false,则result=false,也就是说此时表达式1能够决定整个与运算的值,因此不会再去求表达式2的值。

  • 运算符为||时:如果表达式1为true,则result=true,也就是说此时表达式1能够决定整个或运算的值,因此不会再去求表达式2的值。

赋值运算符

用于给变量赋值

  1. =:基本赋值
  2. +=:加法赋值(a += b 等价于 a = a + b)
  3. -=:减法赋值
  4. *=:乘法赋值
  5. /=:除法赋值
  6. %=:取余赋值

位运算符

下面是用于对整数进行位操作

  1. &:按位与运算符。0&1 = 0,  1&0= 0 , 0&0 = 0, 1&1 = 1
  2. |:1. 按位或运算符。0|1 = 1,  1|0= 1 , 0|0 = 0, 1|1 = 1
  3. ^:1. 按位异或运算符。0^1 = 1,  1^1= 0, 0^0 = 0
  4. ~:按位取反运算符
  5. <<:左移运算符。右边补零,放大。
  6. '>>':右移运算符。左边补零,缩小。

运算符的优先级

运算符优先级规则如下:

  1. 乘(*)除(/)模(%) > 加(+)减(-)
  2. 算术(+-*/%) > 关系(><>=!=) > 赋值(=)
  3. && >||
  4. 如果不清楚顺序,可用()来调整

Scala的相等性

判断两个值是否相等有两种方式

  1. == 比较的对象只有数值,只要==两边的值相等,就返回true。
  2. 用eq引用对比

浮点数精度问题

由于精度问题,小数计算可能存在误差,可使用BigDecimal()函数。

大数问题

一种整数都有自己的表达范围,例如Int类型的最大值是2147483647,一旦超过了这个范围就会报错,或者是导致计算异常。