// Array的相等和List的相等,以及sameElemts方法
Array(1,2,3)==Array(1,2,3) // false
Array(1,2,3).sameElements(Array(1,2,3)) // true
List(1,2,3)==List(1,2,3) // true
List(1,2,3).sameElements(List(1,2,3)) // true
//#################
case class People(name:String,age:Int)
val p1=People("wx",30)
val p2=People("wx",30)
val p3=People("wxx",60)
==是通过equals方法来实现的,而!=是通过!equals来实现的
// equals比较值的相等
p1.equals(p1) // true
p1.equals(p2) // true
p1.equals(p3) // false
p1.equals(null) // false
null.equals(null) // java.lang.NullPointerException
p1.equals(None) // false
None.equals(None)// true
// ==比较值的相等
p1==p1 // true
p1==p2 // true
p1==p3 // false
p1==null // false
null==null // warning: 永远为true
p1==None // warning: 永远为false
None==None // true
// !=比较值的不相等
p1!=p1 // false
p1!=p2 // false
p1!=p3 // true
p1!=null // true
null!=null // false
p1!=None // warning: 永远为true
None!=None // false
//##########################
// eq比较引用的相等,是否在内存中指向同一个位置
p1.eq(p1) // true
p1.eq(p2) // false
p1.eq(p3) // false
p1.eq(null) // false
null.eq(null) // warning: 永远为true
p1.eq(None) // warning: 永远为false
None.eq(None) // true
// ne比较引用的不相等,是否在内存中指向不同的位置
p1.ne(p1) // false
p1.ne(p2) // true
p1.ne(p3) // true
p1.ne(null) // true
null.ne(null) // false
p1.ne(None) // warning: 永远为true
None.ne(None) // false