В книге " Всеобъемлющее рубиновое программирование курса" я столкнулся с главой, где автор (Джордан Хадженс) описывает это как:
"Последнее, что мы собираемся попробовать, - вернуть все целые значения из предложения".
И он делает это так:
string = "The quick 12 brown foxes jumped over 10 lazy dogs"
p string.to_enum(:scan, /\d+/).map { Regexp.last_match }
И он возвращает:
=> [#<MatchData "3">, #<MatchData "34">, #<MatchData "23">]
Интересно, почему/когда этот Regexp.last_match
может быть использован или лучше сказать - почему этот способ не эффективнее, чем:
p string.to_enum(:scan, /\d+/).map { |i| p i }
Это выводит только массив целых чисел и кажется для меня более эффективным способом получения этих чисел.
Возможно, кто-нибудь может объяснить, каковы были причины, по которым автор мог выбрать Regesp.last_match
?