运算符介绍
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。
- 算术运算符
- 赋值运算符
- 比较运算符(关系运算符)
- 逻辑运算符
- 位运算符
算术运算符
算术运算符(arithmetic)是对数值类型的变量进行运算的,在Scala程序中使用的非常多。
细节说明
- 对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。 例如:var x : Int = 10/3 ,结果是 3
- 当对一个数取模时,可以等价 a%b=a-a/b*b , 这样我们可以看到取模的一个本质运算(和java 的取模规则一样)。
注意:Scala中没有 、–操作符,需要通过 =、-=来实现同样的效果
关系运算符(比较运算符)
基本介绍
- 关系运算符的结果都是boolean型,也就是要么是true,要么是false
- 关系表达式 经常用在 if结构的条件中或循环结构的条件中
- 关系运算符的使用和java一样
细节说明
- 关系运算符的结果都是Boolean型,也就是要么是true,要么是false。
- 关系运算符组成的表达式,我们称为关系表达式。 a > b
- 比较运算符“==”不能误写成“=”
- 使用陷阱: 如果两个浮点数进行比较,应当保证数据类型一致.
逻辑运算符
介绍
用于连接多个条件(一般来讲就是关系表达式),最终的结果也是一个Boolean值。
赋值运算符
介绍
赋值运算符就是将某个运算后的值,赋给指定的变量。
赋值运算符的分类
说明:这部分的赋值运算涉及到二进制相关知识,其运行的规则和Java一样。
赋值运算符特点
- 运算顺序从右往左
- 赋值运算符的左边 只能是变量,右边 可以是变量、表达式、常量值/字面量
- 复合赋值运算符等价于下面的效果 比如:a =3 等价于a=a 3
位运算符
说明: 位运算符的规则和Java一样
运算符的特别说明
Scala不支持三目运算符 , 在Scala 中使用 if – else 的方式实现。
代码语言:javascript复制val num = 5 > 4 ? 5 : 4 //没有
val num = if (5>4) 5 else 4
运算符优先级
- 运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。如右表,上一行运算符总优先于下一行。
- 只有单目运算符、赋值运算符是从右向左运算的。
- 运算符的优先级和Java一样。
小结运算符的优先级
- () []
- 单目运算
- 算术运算符
- 移位运算
- 比较运算符(关系运算符)
- 位运算
- 关系运算符
- 赋值运算