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