Comparison

Для сравнения объектов в Ruby используется множество операторов сравнения.

Оператор == возвращает true, если оба объекта можно считать одинаковыми. Например, 1 == 1 * 1 вернет true, потому что числа с обеих сторон представляют одно и то же значение. Выражение "A" == "A" также возвращает true, потому что обе строки имеют одинаковое значение.

Аналогично, два массива эквивалентны, когда они содержат одинаковые элементы в одном и том же порядке. Например, [1, 2] == [1, 2] вернет true, но [1, 2] == [2, 3] и [1, 2] == [2, 1] оба вернут false.

Обратите внимание, что «считаются одинаковыми» и «эквивалентны», потому что технически два объекта не обязательно должны быть одним и тем же объектом. К примеру, при вычислении выражения "A" == "A" Ruby фактически создаст два разных строковых объекта, каждый из которых содержит один символ "A".

На практике это почти всегда то, что нужно. В редких случаях, когда действительно нужно проверить, являются ли два объекта одним и тем же объектом, существует метод equal?. Например, "A".equal?("A") возвращает false.

Другие операторы сравнения: меньше <, меньше или равно <=, больше > и больше или равно >=. Они также работают с числами и строками, как и следовало ожидать.