Ruby: Как написать метод bang, подобный map?

Я хотел бы написать несколько новых методов Array, которые изменяют вызывающий объект, например, так:

a = [1,2,3,4]
a.map!{|e| e+1}
a = [2,3,4,5]

... но я не знаю, как это сделать. Думаю, мне нужен новый мозг.

Итак, я бы хотел что-то вроде этого:

class Array
  def stuff!
    # change the calling object in some way
  end
end

map! это просто пример, я бы хотел написать совершенно новый, не используя никаких ранее существовавших методов !

Спасибо!

6
задан wulftone 5 October 2011 в 18:39
поделиться