метод map с мутированным итератором - PullRequest
3 голосов
/ 17 июня 2019

У меня есть массив объектов, которые я хочу перебрать с map-

object_array.map {|o| o.dostuff }

Но я хочу, чтобы итератор был строковым представлением объекта, поэтому я должен сделать что-то вроде этого -

object_array.map do |o|
  o = o.to_s
  o.dostringstuff
end

Есть ли способ сделать это в одну строку? (интерпретатор не принимает это)

object_array.map {|o.to_s| o.dostringstuff }

Ответы [ 2 ]

3 голосов
/ 17 июня 2019

Почему бы не связать map с, особенно с синтаксисом сокращенного ввода через Symbol#to_proc?

object_array.map(&:to_s).map(&:dostringstuff)
2 голосов
/ 17 июня 2019

Что не так с:

object_array.map{|o| o.to_s.dostringstuff }

...