Страницы

Поиск по вопросам

суббота, 4 января 2020 г.

Вопрос касательно методов Ruby

#ruby


В чем разница между методами map и collect?

Подскажите плиз когда использовать map, а когда collect?
    


Ответы

Ответ 1



Абсолютно никакой разницы. Исходники этих методов указывают в один и тот же код на Си. (для массивов они реализованы на Си отдельно, но тоже одинаково) Проверьте сами, установив и запустив pry и сделав на интересующем объекте obj: show-source obj.collect show-source obj.map Что использовать — холивар. Есть лица, считающие, что надо использовать их так, чтобы код хорошо читался. В этом контексте обычно лучше работает collect (собрать), как "собрать результаты выполнения блока для каждого элемента". Есть лица, считающие, что надо всегда использовать map, потому что это широко известная (вне Ruby) операция преобразования данных, в которой каждый элемент коллекции преобразуется независимо от остальных. Есть лица, жалеющие, что в Ruby так много синонимов и потому так много споров о чисто косметических вещах (bikeshedding). collect_concat vs. flat_map reduce vs. inject detect vs. find find_all vs. select include? vs. member?

Комментариев нет:

Отправить комментарий