Я не понимаю, почему мы используем to_enum, чтобы перечислить строку, когда метод сканирования вернет массив совпадений, что делать в этом случае to_enum?to_enum (: scan) vs scan только с регулярным выражением в ruby
это код с to_enum:
string = "The quick 12 brown foxes jumped over the 10 lazy dogs"
p string.to_enum(:scan, /\d+/).map {Regexp.last_match }
возвращающие:
=> [#<MatchData "12">, #<MatchData "10">]
так почему мы используем здесь to_enum, чтобы сделать строку перечислимы, когда мы можем использовать сканирование, которое будет возвращать массив?
я также попытался с помощью сканирования в одиночку, но получить странный результат:
p string.scan(/\d+/).map { Regexp.last_match}
=>[#<MatchData "10">, #<MatchData "10">]
Существует что-то я отсутствует, и не понимая, здесь ... может кто-нибудь объяснить это, пожалуйста?
благодаря
ОК, но я до сих пор не понимаю, почему, когда мы вызываем сканирование непосредственно на строковой переменной, мы получаем одно и то же значение в массиве и не такие же результаты, как при использовании to_enum, !!! –