करता है किसी को कोड की निम्न दो पंक्तियों के बीच अंतर समझाने कृपया सकते हैं:रूबी gsub सामग्री परिवर्तन नहीं करता है, जबकि सामग्री की स्थापना
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 बदलता है। जबकि अगर मैं gsub!
के साथ लाइन 1 का उपयोग करता हूं, तो इसका @doc पर कोई प्रभाव नहीं पड़ता है। क्या यह करना है कि ब्लॉक उनके पैरामीटर कैसे संभालते हैं? रूबी में संदर्भ द्वारा सब कुछ पारित नहीं किया जाना चाहिए जब तक कि एक विधि का उपयोग करके स्पष्ट रूप से कॉपी नहीं किया जाता?
विधि ओपी द्वारा प्रस्तावित सही तरीके से परिवर्तन करने के लिए है 2. element.content = element.content .gsub ("# {i}", "# {a [i]}") – nilanjan