Because it s implemented differently in each class it will behave differently depending on the type of object it was called on.
Ruby string equality.
If you don t this right you won t get the expected results.
It is not uncommon to need to compare two strings either to assess equality or to find out if one string is higher or lower than the other alphabetically speaking.
There is a corresponding form of abbreviated assignment operator.
Comparison returns 1 0 1 or nil depending on whether string is less than equal to or greater than other string.
Nil is returned if the two values are incomparable.
Ruby supports a rich set of operators as you d expect from a modern language.
With an if statement you can check if something is true.
If the strings are of different lengths and the strings are equal when compared up to the shortest length then the longer string is considered greater than the shorter one.
Nil is returned if the two values are incomparable.
Notice that we use two equal symbols to mean equality.
Then ruby would use object s implementation of which defaults to testing for object identity instead of object contents.
Comparison returns 1 0 1 or nil depending on whether string is less than equal to or greater than other string.
Comparison operators take simple values numbers or strings as arguments and used to check for equality between two values.
But what if string didn t implement.
Most operators are actually method calls.
For each operator plus.
B is interpreted as a plus b where the plus.
Method in the object referred to by variable a is called with b as its argument.
The simplest string literals are enclosed in single quotes the apostrophe character.
A string object in ruby holds and manipulates an arbitrary sequence of one or more bytes typically representing characters that represent human language.
Object new object new false string new string.
If the strings are of different lengths and the strings are equal when compared up to the shortest length then the longer string is considered greater than the shorter one.
This works because the string class implements a two equal signs method that knows how to compare strings.
But when you want to check for the opposite not true false.
Many of ruby s built in classes such as string range and regexp provide their own implementations of the operator also known as case equality triple equals or threequals.