Изменить Исправлено следующее комментарий toro2k.
Range#include? и Range#cover? кажутся разными, как показано в исходном коде 1, 2, и они отличаются по эффективности.
t = Time.now
500000.times do
("a".."z").include?("g")
end
puts Time.now - t # => 0.504382493
t = Time.now
500000.times do
("a".."z").cover?("g")
end
puts Time.now - t # => 0.454867868
Рассматривая исходный код, Range#include? представляется более сложным, чем Range#cover?. Почему Range#include? не может быть просто псевдонимом Range#cover? В чем их отличие?