Scala中的对象相等
Scala中的对象是一个具有状态(数据)和行为(对数据执行函数)的实体。
在像Scala这样的面向对象的程序中,对象是非常重要的部分,因为一切都是对象。比较对象通常是检查其身份的方法。要检查对象是否相等,可用的内置方法是:
==和!=方法(运算符)
equals方法
ne和eq方法
1)==和!=运算符
为了检查两个对象是否相等,我们在Scala中使用==运算符。此外,还有一个!=运算符与是否定==操作符。
程序:
case class employee (empName : String , salary : Integer) object MyClass { def main(args: Array[String]) { var emp1 = employee("Prem", 140000) var emp2 = employee("Anshu", 200000) var emp3 = employee("Prem", 140000) var emp4 = emp1 println("Example of == method") println(emp1 == emp2) println(emp1 == emp3) println(emp1 == emp4) println("Example of != method") println(emp1 != emp2) println(emp1 != emp3) println(emp1 != emp4) } }
输出:
Example of == method false true true Example of != method true false false
在上面的代码中,我们有一个类员工,用于存储empName(存储员工名称)和薪水(我希望我的员工可以那么多)。对于此类,我们创建了4个对象。然后,我们使用==方法进行了比较,并获得了这些结果。
emp1==emp2,返回false。这两个对象具有不同的值。
emp1==emp3,返回true。两个对象的值相同。
emp1==emp4,返回true。两个对象都引用同一个存储块。
我们还比较了==运算符的取反,即!=运算符,结果显然是在==运算符的情况下得到的取反。
2)equals()
方法
的equals()方法是一样的==运算符。用于检查两个运算符是否相等。
语法:
object1.equals(object2)
程序:
case class employee (empName : String , salary : Integer) object MyClass { def main(args: Array[String]) { var emp1 = employee("Prem", 140000) var emp2 = employee("Anshu", 200000) var emp3 = employee("Prem", 140000) var emp4 = emp1 println("Example of equals method") println(emp1.equals(emp2)) println(emp1.equals(emp3)) println(emp1.equals(emp4)) } }
输出:
Example of equals method false true true
在上面的代码中,我们说明了scala中equals()方法的工作。我们有一个类员工,存储empName(存储员工姓名)和薪水(我希望我的员工可以那么多)。对于此类,我们创建了4个对象。为了比较这些对象,我们使用了equals()方法:
emp1.equals(emp2),返回false。这两个对象具有不同的值。
emp1.equals(emp3),返回true。两个对象的值相同。
emp1.equals(emp4),返回true。两个对象都引用同一个存储块。
3)ne()
和eq()
方法
Scala中的ne()和eq()方法用于检查两个对象是否引用相同的对象位置,即对于两个对象obj1和obj2,当且仅当两个对象都引用相同的内存时,eq()方法才返回true。位置。如果两个对象的值相同,但是它们不引用同一对象,则eq()方法将返回false。
语法:
For eq() method: object1.eq(object2) For ne() method: object1.ne(object2)
程序:
case class employee (empName : String , salary : Integer) object MyClass { def main(args: Array[String]) { var emp1 = employee("Prem", 140000) var emp2 = employee("Anshu", 200000) var emp3 = employee("Prem", 140000) var emp4 = emp1 println("Example of eq method") println(emp1.eq(emp2)) println(emp1.eq(emp3)) println(emp1.eq(emp4)) println("Example of ne method") println(emp1.ne(emp2)) println(emp1.ne(emp3)) println(emp1.ne(emp4)) } }
输出:
Example of eq method false false true Example of ne method true true false
在上面的代码中,我们演示了scala中eq()和ne()方法的工作原理。我们有一个雇员类,它存储empName(存储雇员名)和salary(我希望我的也可以这么多)。对于这个类,我们创建了4个对象。为了比较这些对象的相等性,我们使用了eq()方法:
emp1.eq(emp2),返回false。这两个对象具有不同的值。
emp1.eq(emp3),返回false。两个对象的值相同,但是它们引用的内存块不同。
emp1.eq(emp4),返回true。两个对象都引用同一个存储块。
我们还比较了使用该ne()
方法对对象相等性的否定。