Ruby-তে সংখ্যা নিয়ে কাজ করার একটি গুরুত্বপূর্ণ দিক হলো ইন্টিজার (দশমিক বিচ্ছেদকের পরে কোনো অঙ্ক নেই এমন সংখ্যা) আর ফ্লোটিং-পয়েন্ট সংখ্যার (দশমিক বিচ্ছেদকের পরে শূন্য বা তার বেশি অঙ্ক থাকে এমন সংখ্যা) মধ্যে পার্থক্য।
এগুলো Integer ও Float ক্লাসের মাধ্যমে বাস্তবায়িত হয়।
a = 1
b = 1.0
a.class
#=> Integer
b.class
#=> Float
+, -, *, /) দিয়ে গাণিতিক কাজ করা হয়।
সংখ্যা তুলনা করা যায় সাধারণ তুলনা অপারেটর দিয়ে।Integer ইনস্ট্যান্সগুলোর মধ্যে মৌলিক গাণিতিক অপারেশনের ফল সবসময় Integer ইনস্ট্যান্স হবে।Float ইনস্ট্যান্সগুলোর মধ্যে মৌলিক গাণিতিক অপারেশনের ফল Float ইনস্ট্যান্স হবে।Integer ও Float ইনস্ট্যান্সের মধ্যে মৌলিক গাণিতিক অপারেশনের ফল Float ইনস্ট্যান্স হবে।Float ও Integer ক্লাসে এমন মেথড আছে যা এক ধরনের মানকে অন্যটিতে রূপান্তর করে।
Integer সংখ্যা একটি পূর্ণ একক পর্যন্ত নির্ভুল, আর Float-এর নির্ভুলতা পূর্ণ সংখ্যার ভগ্নাংশ পর্যন্ত।
এর মানে হলো, একটি ফ্লোটকে ইন্টিজারে রূপান্তর করলে নির্ভুলতা হারাতে পারে।4.9.to_i
#=> 4
5.to_f
#=> 5.0
7 - 3.0
#=> 4.0
2 == 4
#=> false
1.0 == 1
#=> true
শর্তসাপেক্ষে কোড চালানোর জন্য if স্টেটমেন্ট ব্যবহার করা যায়:
x = 5
if x == 5
# Execute logic if x equals 5
elsif x > 7
# Execute logic if x greater than 7
else
# Execute logic in all other cases
end
কখনও কখনও আপনি একটি শর্ত না সত্য হলে একটি স্টেটমেন্ট (বা একাধিক স্টেটমেন্ট) চালাতে চান। এমন পরিস্থিতির জন্য Ruby unless কিওয়ার্ডটি ব্যবহার করে:
x = 4
unless x == 5
# Execute logic if x does not equal 5
else
# Execute logic if x == 5
end
কোনো ভ্যারিয়েবলের মানের উপর নির্ভর করে ভিন্ন কোড চালাতে চাইলে Ruby-র case স্টেটমেন্ট কাজে লাগতে পারে:
y = 5
case y
when 3
# Execute logic if y equals 3
when 5
# Execute logic if y equals 5
else
# Execute logic in all other cases
end
একই সমস্যা কখনও কখনও বিভিন্ন ধরনের শর্তমূলক স্টেটমেন্ট দিয়ে সমাধান করা যায়, আবার কোনো কোনো সময় সমস্যার জন্য একটি অন্যটির চেয়ে বেশি উপযুক্ত হতে পারে। তিনটি শর্তমূলক স্টেটমেন্টের যেকোনোটি ব্যবহার করার সময় একটু থেমে বাকি দুটি বিকল্পের কথাও ভেবে দেখুন।