Ruby Comparison Operators
Comparison Operators
Comparison operators take simple values (numbers or strings) as arguments and used to check for equality between two values. Ruby provides following comparison operators :
Operator | Name | Example | Result |
---|---|---|---|
== | Equal | x==y | True if x is exactly equal to y. |
!= | Not equal | x!=y | True if x is exactly not equal to y. |
> | Greater than | x>y | True if x is greater than y. |
< | Less than | x<y | True if x is less than y. |
>= | Greater than or equal to | x>=y | True if x is greater than or equal to y. |
<= | Less than or equal to | x<=y | True if x is less than or equal to y. |
<=> | Combined comparison operator. | x<=>y | x <=> y : = if x < y then return -1 if x =y then return 0 if x > y then return 1 if x and y are not comparable then return nil |
=== | Test equality | x===y | (10...20) === 9 return false. |
.eql? | True if two values are equal and of the same type | x.eql? y | 1 == 1.0 #=> true 1.eql? 1.0 #=> false |
equal? | True if two things are same object. | obj1.equal?obj2 | val = 10 => 10 val.equal?(10) => true |
Example: Equality test
puts ("Test two numbers for equality with ==, !=, or <=>")
puts 14 == 16
puts 14 != 16
puts 14 <=> 14
puts 14 <=> 12
puts 14 <=> 16
Output:
Test two numbers for equality with ==, !=, or <=> false true 0 1 -1
Example: eql? and eqlity? operators
irb(main):023:0> 1 == 1.0
=> true
irb(main):024:0> 1.eql?1.0
=> false
irb(main):025:0> obj1 = "123"
=> "123"
irb(main):026:0> obj2 = obj1.dup
=> "123"
irb(main):027:0> obj1 == obj2
=> true
irb(main):028:0> obj1.equal?obj2
=> false
irb(main):029:0> obj1.equal?obj1
=> true
irb(main):030:0>
Example: Equal, less than, or greater than each other
puts ("Test if two numbers are equal, less than, or greater than each other")
puts 14 < 16
puts 14 < 14
puts 14 <= 14
puts 14.0 > 12.5
puts 14.0 >= 14
Output:
Test if two numbers are equal, less than, or greater than each other true false true true true
Example: Spaceship operator returns -1, 0, or 1
puts ("the <=> (spaceship operator) returns -1, 0, or 1,")
puts 2 <=> 3
puts 2 <=> 2
puts 3 <=> 2
Output:
the <=> (spaceship operator) returns -1, 0, or 1, -1 0 1
Example: Test the value in a range
puts ("test if a value is in a range")
puts (12...16) === 8
puts (12...16) === 14
puts (12...16) === 16
puts (12...14) === 12
puts (12...16) === 14
Output:
test if a value is in a range false true false true true
Previous:
Ruby Arithmetic Operators
Next:
Ruby Assignment Operators
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://www.w3resource.com/ruby/ruby-comparison-operators.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics