Карта, вероятно, лучший способ, но вы также можете изменить строку на месте.
> a = "hello"
> puts a
=> hello
> a.replace("hi")
> puts a
=> hi
изменяет внутреннее значение строки.Например, ваш код может стать:
x = %w(hello there world)
x.each { |e| if (e == "hello"); e.replace("hi") end; }
, но это гораздо приятнее:
x = %w(hello there world)
x.map! { |e| e == "hello" ? "hi" : e }