Open In App

Scala | Equals

Last Updated : 13 May, 2019
Improve
Improve
Like Article
Like
Save
Share
Report

Equals is a trait, which is a linking that accommodates functionalities of equality. It extends the class Any. The Linear Supertype here is Any and the Subclasses here are Product, Product1, Product2, and many more.
Abstract value members
The abstract value member here is:

abstract def canEqual(that: Any): Boolean

It returns true if the stated instances are equal.
Example :




// 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))
          
    


Output:

true
true

Here, we have used canEqual method for proving the equality of the instances.

Example :




// 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)
          
    


Output:

true
false
false

Here, we have used method equals and == for checking the equality.



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads