当遍历哈希表时,如下所示:
“key”的区别在于,
hash.keys.each do |key|
process_key(key)
end
Rubocop建议我使用:
each_key
替代:
keys.each
“key”的区别在于,
keys.each
是对散列的键进行迭代,而each_key
则是一个哈希方法,用于迭代哈希表中的键。
each
的返回值没有被使用,因此keys.each
创建了一个临时数组,然后被丢弃。each_key
创建了一个惰性枚举器,在处理大型哈希表时更加高效。 - Maxeach
返回的枚举器,而是不必要地创建了枚举器keys
,然后链接到另一个枚举器each
的创建。为什么要创建额外的开销,当你可以利用单个特殊目的的枚举器呢?它确实就是为这个精确的原因而存在的! - Derek Wrighteach_key
不会返回键数组,而keys.each
会。each_key
返回原始哈希表。 - sawa