• 0

ما الفرق بين to_s و to_str في روبي؟

أريد معرفة الفروقات بين التوابع ذات الأسماء الطويلة والقصيرة في روبي مثل to_i/to_int و to_a/to_ary وto_s/to_str وغيرها، لأنها تبدو عند استخدامها في البرامج متشابهة.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

يبدو للمبتدئين أنه لا يوجد فرق بين to_s و to_str  إلا أنه يوجد بعض الفروق البسيطة بينهم  حيث لا يوجد تابعين لهما نفس الوظيفة في أي لغة لأن هذا يعتبر مضيعة للوقت.
يجب عليك أن لا تستخدم to_str إلا إذا كان الكائن يعمل كسلسلة نصية بدلا من كونه قابل للتمثيل أنه سلسلة نصية فقط.
أمثلة حول الاستخدام  to_s و to_str:

1.to_s              # returns "1"
Object.new.to_s     # returns "#<Object:0x4932990>"
1.to_str            # raises NoMethodError
Object.new.to_str   # raises NoMethodError

كما ترى فإن to_s يُحوّل أي كائن إلى سلسلة نصية في حين أن to_str يُصدر خطأ عندما يكون معامله لا يبدو كسلسلة نصية.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن