আমি Myron এর উত্তর মত কিন্তু এটি রুবি রোগ ভুগছেন "আমি আর ব্যবহার জাভা / সি # তাই আমি কখনও ব্যবহার উত্তরাধিকার যাচ্ছি" । যে কোনও ক্লাস খুললে বিপদ পূর্ণ হতে পারে এবং খুব কম ব্যবহার করা উচিত, বিশেষত যখন এটি রুবির কোর লাইব্রেরির অংশ। আমি বলছি না যে এটি কখনও ব্যবহার করবেন না, তবে এটি এড়ানো সহজ easy এবং এর চেয়ে আরও ভাল বিকল্প উপলব্ধ available
class IntegerInString < String
def initialize( s )
fail ArgumentError, "The string '#{s}' is not an integer in a string, it's just a string." unless s =~ /^\-?[0-9]+$/
super
end
end
তারপরে আপনি যখন একটি স্ট্রিং ব্যবহার করতে চান যা একটি সংখ্যা হতে পারে তখন আপনি কী করছেন তা স্পষ্ট হয়ে যায় এবং আপনি কোনও মূল বর্গ ক্লোবার না করেন eg
n = IntegerInString.new "2"
n.to_i
# => 2
IntegerInString.new "blob"
ArgumentError: The string 'blob' is not an integer in a string, it's just a string.
আপনি বাইনারি সংখ্যার ইত্যাদি প্রধান বিষয় যদিও পরীক্ষা করার মত আরম্ভ অন্যান্য চেক সমস্ত প্রকারের যোগ করতে পারেন, যে রুবি মানুষের জন্য হয় এবং মানুষ মানে হচ্ছে স্বচ্ছতা । কোনও বস্তুকে এর পরিবর্তনশীল নাম এবং শ্রেণীর নাম দিয়ে নামকরণ জিনিসগুলিকে আরও পরিষ্কার করে তোলে ।
^
এবং বেশিরভাগ অন্যান্য রেজিপ্যাক্স ফ্লেভারের তুলনায় মেটাচর হিসাবে মোটামুটি$
আলাদা অর্থ রয়েছে । আপনি সম্ভবত ব্যবহার\A
এবং এর\Z
পরিবর্তে বলতে চাইছেন ।