सामान्य तौर पर, विधियाँ जो यह !
बताती हैं कि यह विधि उस वस्तु को संशोधित करेगी जो इसे कहा जाता है । रूबी ने इन्हें " खतरनाक तरीके " कहा, क्योंकि वे यह बताते हैं कि किसी और का संदर्भ हो सकता है। यहाँ तार के लिए एक सरल उदाहरण है:
foo = "A STRING" # a string called foo
foo.downcase! # modifies foo itself
puts foo # prints modified foo
यह आउटपुट होगा:
a string
मानक पुस्तकालयों में, बहुत सारे स्थान हैं जहाँ आप समान नाम वाली विधियों के जोड़े देखेंगे, एक के !
बिना और एक के साथ । बिना लोगों को "सुरक्षित तरीकों" कहा जाता है, और वे परिवर्तन के साथ मूल की एक प्रति के लिए आवेदन किया लौट प्रतिलिपि , कॉल प्राप्त करने वाला कोई बदलाव नहीं है। यहाँ एक ही उदाहरण के बिना है !
:
foo = "A STRING" # a string called foo
bar = foo.downcase # doesn't modify foo; returns a modified string
puts foo # prints unchanged foo
puts bar # prints newly created bar
यह आउटपुट:
A STRING
a string
ध्यान रखें कि यह सिर्फ एक सम्मेलन है, लेकिन बहुत सारे रूबी वर्ग इसका पालन करते हैं। यह आपको अपने कोड में संशोधित किए जा रहे कार्यों पर नज़र रखने में भी मदद करता है।