📜  斯卡拉 |等于

📅  最后修改于: 2022-05-13 01:54:28.671000             🧑  作者: Mango

斯卡拉 |等于

Equals是一个特征,它是一个包含相等功能的链接。它扩展了类Any 。这里的线性超类型是 Any,这里的子类是 Product、Product1、Product2 等等。
抽象值成员
这里的抽象值成员是:

abstract def canEqual(that: Any): Boolean

如果指定的实例相等,则返回 true。
例子 :

// Scala program of trait 
// Equals
  
// Creating a case class of 
// employee
case class Employee (name:String, age:Int) 
  
// Creating object
object Main 
{ 
    // Main method 
    def main(args: Array[String]) 
    { 
        // Creating objects
        var c = Employee("Nidhi", 23) 
        var d = Employee("Nidhi", 23)
        var e = Employee("Nidhi", 25)
              
        // Displays true if instances 
        // are equal else false
        println(c.canEqual(d))
        println(c.canEqual(e))
          
    } 
} 
输出:
true
true

在这里,我们使用了canEqual方法来证明实例的相等性。

例子 :

// Scala program of trait 
// Equals
  
// Creating a case class of 
// Name
case class Name (firstname:String, lastname:String) 
  
// Creating object
object Main 
{ 
    // Main method 
    def main(args: Array[String]) 
    { 
        // Creating objects
        var x = Name("Nidhi", "Singh") 
        var y = Name("Nidhi", "Singh")
        var z = Name("Geeta", "Sharma")
              
        // Displays true if instances 
        // are equal else false
        println(x.equals(y))
        println(x.equals(z))
        println(y==z)
          
    } 
} 
输出:
true
false
false

在这里,我们使用方法equals==来检查相等性。