测试散列是否具有多个键中的任何一个

我想知道是否有更好的方法来测试散列是否有来自数组的任何键。 我想用它这样的东西:

keys = %w[k1 k2 k5 k6] none = true if hash.key?(keys) 

或者我将不得不循环这个?

无需循环:

 (hash.keys & keys).any? # => true 

说明:

.keys将散列中的所有键作为数组返回。 &两个数组相交,返回两个数组中存在的任何对象。 最后, .any? 检查数组是否有任何值。

 keys.any? { |i| hash.has_key? i }