تحويل أنواع البيانات

تعديل
نسخ الدرس
تحميل الدرس

تحويل أنواع البيانات

في هذا الدرس، سنتعلم كيفية تحويل البيانات من نوع إلى آخر في روبي. هذه مهارة أساسية، خاصة عند التعامل مع إدخال المستخدم.

لماذا نحتاج تحويل الأنواع؟

تذكر من الدرس السابق أن gets يُرجع دائماً نصاً (String)، حتى لو أدخل المستخدم رقماً:

لذلك نحتاج تحويل النص إلى رقم قبل إجراء العمليات الحسابية عليه.

دوال التحويل الأساسية

1. تحويل إلى عدد صحيح: to_i

دالة to_i (to integer) تحوّل القيمة إلى عدد صحيح:

سلوك خاص مع النصوص:

2. تحويل إلى عدد عشري: to_f

دالة to_f (to float) تحوّل القيمة إلى عدد عشري:

3. تحويل إلى نص: to_s

دالة to_s (to string) تحوّل القيمة إلى نص:

4. تحويل إلى مصفوفة: to_a

دالة to_a (to array) تحوّل القيمة إلى مصفوفة:

جدول ملخص دوال التحويل

الدالةالوصفمثالالناتج
to_iتحويل إلى عدد صحيح"42".to_i42
to_fتحويل إلى عدد عشري"3.14".to_f3.14
to_sتحويل إلى نص42.to_s"42"
to_aتحويل إلى مصفوفة(1..3).to_a[1, 2, 3]

استخدام التحويل مع إدخال المستخدم

مثال 1: حساب العمر

مثال 2: حساب المساحة

مثال 3: جمع رقمين

تحويل متسلسل

يمكنك ربط عدة تحويلات معاً:

التحقق من صلاحية التحويل

بما أن to_i تُرجع صفراً للنصوص غير الرقمية، يمكنك التحقق من الإدخال:

طريقة أفضل باستخدام التعبيرات النمطية:

دوال تحويل إضافية

Integer() و Float() - تحويل صارم

هذه الدوال ترفع خطأ إذا كان التحويل غير ممكن:

to_sym - تحويل إلى رمز

أخطاء شائعة

1. نسيان التحويل قبل الحساب

2. استخدام التحويل الخاطئ

3. الخلط بين + للجمع والدمج

مثال شامل: حاسبة بسيطة

نصائح مهمة

  1. استخدم دائماً التحويل المناسب: to_i للأعداد الصحيحة، to_f للأعداد العشرية
  2. تذكر أن gets تُرجع نصاً دائماً: حتى لو أدخل المستخدم أرقاماً
  3. to_i لا تُنشئ خطأ: النصوص غير الرقمية تصبح صفراً - تحقق من الإدخال إذا لزم الأمر
  4. استخدم Integer() أو Float() للتحويل الصارم: عندما تريد التأكد من صحة الإدخال
  5. سلسلة التحويلات: يمكنك ربط chomp.strip.to_i في سطر واحد

التمرين

اكتب برنامجاً يطلب من المستخدم إدخال رقمين ثم يحسب ويطبع مجموعهما والفرق بينهما.

ملاحظة: استخدم حقل الإدخال المحاكى لإدخال الرقمين (كل رقم في سطر منفصل).

الناتج المتوقع: