تبدیل انواع داده
در زبان 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 می باشد.