সাধারণভাবে, যে পদ্ধতিগুলি শেষ হয় !
সেগুলি নির্দেশ করে যে পদ্ধতিটি যার দিকে ডেকেছে সেটিকে পরিবর্তন করবে । রুবি এগুলিকে " বিপজ্জনক পদ্ধতি " হিসাবে অভিহিত করে কারণ তারা এমন পরিবর্তন করে যে অন্য কারও কাছে রেফারেন্স থাকতে পারে। স্ট্রিংগুলির জন্য এখানে একটি সাধারণ উদাহরণ:
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
মনে রাখবেন এটি কেবল একটি সম্মেলন, তবে প্রচুর রুবি শ্রেণি এটি অনুসরণ করে। এটি আপনাকে আপনার কোডে কী পরিবর্তন করা হচ্ছে তা ট্র্যাক রাখতে সহায়তা করে।