Feature #15976
Updated by fcheung (Frederick Cheung) over 5 years ago
This is semantically equivalent to `(ary1 & ary2).any?`, but more efficient and makes the intent more obvious. For example bundler [checks]( https://github.com/ruby/ruby/blob/master/lib/bundler/runtime.rb#L61 ) whether the list of requested groups and the list of groups for a dependency has any overlap - it doesn't care what the overlap is, as long as it is non empty In my personal projects we've found this to be a bottleneck when the arrays are large and where intersections are likely - `!(ary1 `(ary1 & ary2).empty?` ary2).any`? keeps searching for all of the intersection even after we've found the first one, & creates extra garbage because of the intermediate array. See https://github.com/ruby/ruby/pull/2260