تبدیل انواع داده

در زبان Ruby امکان تبدیل یک نوع به نوع دیگر وجود دارد که اصطلاحاً به آن Type Casting گفته می شود. Ruby دارای مجموعه ای از توابع از پیش تعریف شده است، که می توانند مقادیر را از یک نوع بـه نوع دیگر تبدیل کنند. در جدول زیر به برخی از این توابع اشاره شده است :

متد کاربرد
Value .to_i

Value .to_int

Integer(Value)

Value را به نوع int یا صحیح تبدیل می کند.
Value .to_f

Float(Value)

Value را به نوع float یا اعشاری تبدیل می کند.
Value .to_c Value را به نوع Complex تبدیل می کند.
Value .to_d Value را به نوع decimal تبدیل می کند.
Value .to_r Value را به نوع گویا تبدیل می کند.
Value .to_s Value را به نوع رشته تبدیل می کند.

مقدار Value هر نوع داده‌ای می‌تواند باشد اما باید مطمئن شد که امکان تبدیل به نوع داده‌ای مورد نظر وجود داشته باشد. در برنامه زیر یک نمونه از تبدیل متغیرها با استفاده متدهای بالا نمایش داده شده است :

x = 9.99
convertedValue = x.to_int

puts "Original value is: #{x}"
puts "Converted value is: #{convertedValue}"
Original value is: 9.99
Converted value is: 9

در کد بالا متغیر x از نوع float است و ما با استفاده از متد to_int آن را به نوع صحیح تبدیل کرده ایم. این کار باعث می شود که قسمت اعشار این متغیر حذف شود. خط دوم کد بالا را به صورت های زیر هم می توان نوشت:

convertedValue = x.to_i

یا

convertedValue = Integer(x)

در کد بالا مشاهده می کنید که برای استفاده از متدهای تبدیل نوع، ابتدا باید نام متغیر، سپس علامت نقطه و در نهایت نام متد را بنویسیم. برای به دست آوردن نوع یک متغیر هم می توان از متد class استفاده کرد. به مثال زیر توجه کنید :

x = 9.99

puts x.class

در خط اول یک متغیر تعریف کرده ایم. حال اگر بخواهیم که نوع داده ای که در این متغیر قرار داده شده است چیست، کافیست که نام متغیر را نوشته، سپس علامت نقطه و بعد متد class را بنویسیم. بعد از اجرای کد بالا، نتیجه به صورت زیر خواهد بود :

Float

همانطور که مشاهده می کنید، نتیجه نمایش کلمه Float است. یعنی متغیر ما از نوع Float می باشد.