Я не понимаю, как работают рубины Ruby.Каковы значения, сопоставленные с?
Я ожидаю, что они:
a = 'a'
{a => 1}[a] # => 1
{a: 1}[:a] # => 1
{2 => 1}[2] # => 1
Как это работает?
{'a' => 1}['a'] # => 1
Первая строка 'a'
не является тем же объектом, как второй строки 'a'
.
Существует еще сравнение происходит , просто не с равными ?. Хэш просто используется для размещения значений в ковши, для устранения столкновений необходимы сравнения ключей. –
Да, вы правы. Ваш ответ дополняет мой :-) –
-1. Хешинг не имеет к этому никакого отношения; контейнер на основе BST может демонстрировать то же самое поведение. –