scala运算符
包含算术运算符,关系运算符,赋值运算符,逻辑运算符,位运算符
及equals eq ==的比较
代码演示:
```scala
```scala
package wqg.day1
//运算符操作
object operational {
def main(args: Array[String]): Unit = {
//算术运算符 + - * / % 不作详细记录
/*
* 注意1
* + 符号 既可以表示两个数字相加 也可以使其两个字符串相加
* - 既可以表示两个数字相减 可以表示负号
* 其他跟java类似
* 注意2在scala中没有运算符概念 其实都是在调用方法 即 + - / *等都是方法名
* 在scala中, 调用方法的点.可以省略
* 在给方法传递参数的时候, 如果这个方法的参数只有一个参数或者没有参数, 则愿括号也可以省略
* .和()都省略后, 这个时候的方法名我们就称为运算符
*/
var i=2.+(3)
var i1=2+(3)
var i2=2+3
println("算术运算符:",i,i1,i2) // 输出结果(算术运算符:,5,5,5) 结论 都是一样的 . () 在满足条件情况下可以省略
//关系运算符 == != < > <= >= 跟java一样 不作详细记录
println("关系运算符:",2>=3) //(关系运算符:,false)
//逻辑运算符 &&(逻辑与) ||(逻辑或) !(逻辑非)
/*
注意
a&&b 如果a为true 则b不再计算
a||b 如果a为false 则b不再计算
*/
//赋值运算符
/*
= C = A + B 将 A + B 表达式结果赋值给 C
+= C += A 等于 C = C + A
-= *=等 同理
注意
Scala中没有++、--操作符,需要通过+=、-=来实现同样的效果
*/
var fz =0
fz+=5
println("赋值运算符:",fz) //(赋值运算符:,5)
//位运算符 暂时用不到后续了解
/*
& 按位与运算符 (a & b) 输出结果 12 ,二进制解释: 0000 1100
| 按位或运算符 (a | b) 输出结果 61 ,二进制解释: 0011 1101
^ 按位异或运算符 (a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~ 按位取反运算符 (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。
<< 左移动运算符 a << 2 输出结果 240 ,二进制解释: 1111 0000
>> 右移动运算符 a >> 2 输出结果 15 ,二进制解释: 0000 1111
>>> 无符号右移 A >>>2 输出结果 15, 二进制解释: 0000 1111
*/
// equals eq == 比较 (简单了解)
/*
equals 和 == 一样 同java里的equals 只比较内容
eq 同java里的== 比较地址 比较值会报错 例如 3.eq(3)
nq 是eq相反
注意:
如果要比较对象的引用是否相同或者不同,请用eq或ne方法
如果要比较值是否相等,请用equals方法或者==方法,这里推荐使用==方法,因为如果比较值为null的情况下,调用equals方法是会报错的,而==方法则避免了这个问题,它事先为我们检查了是否为null,然后在进行相应比较
*/
println("相等三者比较:","3"=="3",3==3,new String("3").eq("3"),3=="5","3".equals(3),3.equals("3")) //(相等三者比较:,true,true,false,false,false,false)
// println("比较2:","3".eq("3"))
//类似java里面三目运算符
var n=20
var m=30
var result=if(n>m) n else m
println("类似三元运算符",result)
}
}
输出结果:
(算术运算符:,5,5,5)
(关系运算符:,false)
(赋值运算符:,5)
(相等三者比较:,true,true,false,false,false,false)
(比较2:,true)
(类似三元运算符,30)
以上是学习记录,欢迎指正☺