रूबी एक dynamically-typed, strictly-typed (या "दृढ़ता से टाइप" है) भाषा। लुआ एक और ऐसी भाषा है। पूर्व का मतलब है कि चर मूल्य के किसी वर्ग को पकड़ सकते हैं। उत्तरार्द्ध - जो आप चल रहे हैं-इसका मतलब है कि प्रकार का दबाव स्वचालित रूप से नहीं होता है।
इन्हें जावास्क्रिप्ट के साथ तुलना करें, जो गतिशील रूप से टाइप किया गया है और ढीला टाइप किया गया। जावास्क्रिप्ट में आप var x = [] + false;
लिख सकते हैं और यह कुछ उपयोगी काम करने के लिए का प्रयास करेगा। एक और उदाहरण के लिए, जावास्क्रिप्ट "1" + 1 == "11"
लेकिन "1" - 1 == 0
में। रूबी ऐसी कोई काम नहीं करेगा।
अपने मामले में आप की जरूरत है:
puts income.to_i - bills.to_i
ध्यान दें कि-क्योंकि रूबी प्रत्येक वर्ग में सबसे operators are implemented as methods चुन सकते हैं कि ऑपरेटर विभिन्न प्रकार के ऑपरेंड संभालती है। उदाहरण के लिए:
class Person
def +(something)
if something.is_a?(Numeric)
self.weight += something
elsif something.is_a?(Time)
self.age += something
else
raise "I don't know how to add a #{something.class} to a Person."
end
end
end
अधिकांश समय कोर पुस्तकालय इतने चतुर होने का प्रयास नहीं करते हैं, हालांकि।
मेरे उत्तर से काफी बेहतर! धन्यवाद, Phrogz। –