Я - просто новичок к рубину. Я видел строковый метод (Строка) .hash.
Например, в irb
, Я попробовал
>> "mgpyone".hash
возвраты
=> 144611910
как делает этот метод работы?
Метод хэша
определен для всех объектов. См. Документацию :
Создает хеш-значение
Fixnum
для этого объекта . Эта функция должна иметь свойство , котороеa.eql? (B)
подразумеваетa.hash == b.hash
. Хеш-значение используется классомHash
. Любое хеш-значение, которое превышает емкостьFixnum
, перед использованием будет усечено.
Итак, метод String.hash
определен в C-коде . В основном (упрощенно) он просто суммирует символы в этой строке.