Scala运算符
Scala 运算符的使用和 Java 运算符的使用基本相同,只有个别细节上不同。
Java 和 Scala 中关于==的区别
Java:
==比较两个变量本身的值,即两个对象在内存中的首地址;
equals 比较字符串中所包含的内容是否相同。
String s1 = "abc";
String s2 = new String("abc");
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
}
输出结果:
false
true
Scala:
==更加类似于 Java 中的 equals,参照 jd 工具
eq()可以比较地址值
def main(args: Array[String]): Unit = {
val s1 = "abc"
val s2 = new String("abc")
println(s1 == s2)
println(s1.eq(s2))
}
输出结果:
true
false
扩展避免逻辑与(&&)空指针异常
isNotEmpty(String s){
//如果按位与,s 为空,会发生空指针
return s!=null && !"".equals(s.trim());
}
赋值运算符
Scala 中没有++、–操作符,可以通过+=、-=来实现同样的效果。
Scala 运算符本质
在 Scala 中其实是没有运算符的,所有运算符都是方法。
1)当调用对象的方法时,点.可以省略
2)如果函数参数只有一个,或者没有参数,()可以省略
object TestOpt {
def main(args: Array[String]): Unit = {
// 标准的加法运算
val i:Int = 1.+(1)
// (1)当调用对象的方法时,.可以省略
val j:Int = 1 + (1)
// (2)如果函数参数只有一个,或者没有参数,()可以省略
val k:Int = 1 + 1
println(1.toString()) //输出结果1
println(1 toString()) //输出结果1
println(1 toString) //输出结果1
} }