.hash字符串方法如何工作?
我只是ruby的新手。 我见过一个字符串方法(String).hash。
例如,在irb
,我尝试过
>> "mgpyone".hash
回报
=> 144611910
这个方法有什么用?
hash
方法是为所有对象定义的。 见文档 :
为此对象生成
Fixnum
哈希值。 此函数必须具有a.eql?(b)
暗示a.hash == b.hash
。 散列值由Hash
类使用。 任何超出Fixnum
容量的哈希值在被使用之前都将被截断。
所以String.hash
方法是在C-Code中定义的。 基本上(过度简化)它只是总结了该字符串中的字符。