یکی از جنبههای کلیدی کار با اعداد در 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
اگر میخواهید بسته به مقدار یک متغیر کد متفاوتی اجرا کنید، دستور case در Ruby میتواند به کارتان بیاید:
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
گاهی میتوان یک مسئله را با انواع مختلفی از دستورهای شرطی حل کرد، و گاهی یکی از آنها برای آن مسئله مناسبتر از دیگری است. خوب است وقتی از هر یک از این سه دستور شرطی استفاده میکنید، لحظهای توقف کنید و دو گزینهی دیگر را هم در نظر بگیرید.