==在Scala和Java中都是用于判断相等性的一个运算符,但是作用却不完全相同。Java中的=可以比较基本类型和引用类型,对于基本类型而言,==比较的是值的相等性,而对于引用类型来说,=比较的是引用的相等性,也就是比较所引用的地址是否相同。Scala与Java 不同,在Scala中,==比较的对象只有数值,只要=—两边的值相等,就返回true。Java中使用=进行相等性判断时,若==左边是null,就会抛出异常,而在Scala中则不会,Scala中即使遇到null==null这种情况也不会抛出异常。因为使用=进行相等性判断实际
Scala的==
上就是对equals方法的调用,通过Scala中存在的自动null检查,若发现有null就不会调用equals方法,只有判断出没有null,才会调用equals方法,所以这种处理方式下肯定不会有抛出异常的问题。