Showing posts with label spaceship operator. Show all posts
Showing posts with label spaceship operator. Show all posts

Tuesday, 6 April 2021

Php: <=>: Spaceship operator

Spaceship operator return

a.   0 if both the operands are same

b.   -1 if the left operand is less than right one

c.    1 if the left operand is greater than right one

 

spaceship_operator_demo.php

#!/usr/bin/php

<?php
$a = 11 <=> 11; // 0
$b = 11 <=> 22; // -1
$c = 22 <=> 11; // 1

$d = 'a' <=> 'a'; // 0
$e = 'a' <=> 'b'; // -1
$f = 'b' <=> 'a'; // 1

echo "11 <=> 11 : $a \n";
echo "11 <=> 22 : $b \n";
echo "22 <=> 11 : $c \n\n";

echo "'a' <=> 'a' : $d \n";
echo "'a' <=> 'b' : $e \n";
echo "'b' <=> 'a' : $f \n";

?>

 

Output

$./spaceship_operator_demo.php 

11 <=> 11 : 0 
11 <=> 22 : -1 
22 <=> 11 : 1 

'a' <=> 'a' : 0 
'a' <=> 'b' : -1 
'b' <=> 'a' : 1

 

 

 

 

Previous                                                    Next                                                    Home

Thursday, 17 January 2019

Groovy: Spaceship (<=>) operator

Spaceship operator (<=>) delegates the call to compareTo method of the object.

HelloWorld.groovy
public class Employee implements Comparable<Employee>{

    String firstName, lastName;
    Integer salary;
    
    Employee(String firstName, String lastName, int salary){
        this.firstName = firstName;
        this.lastName = lastName;
        this.salary = salary;
    }
    
    @Override
    public int compareTo(Employee o) {
  println "Calling compareTo method"
        if(o == null)
            throw new NullPointerException();
       return this.salary.compareTo(o.salary);
    }
    
    @Override
    public String toString(){
      return salary +". " + firstName +" " + lastName;  
    }
 
}

Employee emp1 = new Employee("krishna", "Gurram", 123456)
Employee emp2 = new Employee("KRISHNA", "GURRAM", 23456)
Employee emp3 = new Employee("KRISHNA", "GURRAM", 123456)

println "emp1 <=> emp2 : ${emp1 <=> emp2}"
println "emp1 <=> emp3 : ${emp1 <=> emp3}"
println "emp2 <=> emp3 : ${emp2 <=> emp3}"


Output

Calling compareTo method
emp1 <=> emp2 : 1
Calling compareTo method
emp1 <=> emp3 : 0
Calling compareTo method
emp2 <=> emp3 : -1



Previous                                                 Next                                                 Home