Может кто-нибудь объяснить разницу между следующими двумя строками кода :
1. element.content.gsub!("#{i}", "#{a[i]}")
2. element.content = element.content.gsub("#{i}", "#{a[i]}")
В следующем коде:
a.each_index do |i|
@doc.traverse do |element|
if element.text?
element.content = element.content.gsub("#{i}", "#{a[i]}")
end
end
end
puts @doc
Представленный выше код изменяет @doc. А если я использую строку 1 сgsub!
это не влияет на @doc. Связано ли это с тем, как блоки обрабатывают свои параметры? Разве в Ruby не следует передавать все по ссылке, если только явно не копируется с помощью метода?