هيكل الصفوف

إذا كانت أسماء الحقول غير مهمة، يمكنك استخدام هيكل الترتيب (tuple struct):

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

غالبًا ما يُستخدم هذا للأغلفة ذات الحقل الواحد (single-field wrappers) (تسمى newtypes):

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Speaker Notes

This slide should take about 10 minutes.
  • الأنواع الجديدة (Newtypes) هي طريقة رائعة لترميز معلومات إضافية حول القيمة في نوع بدائي (primitive type)، على سبيل المثال:
    • يتم قياس الرقم بوحدات معينة: نيوتن (Newtons) في المثال أعلاه.
    • القيمة اجتازت بعض التحقق عند إنشائها، لذلك لم تعد بحاجة إلى التحقق منها مرة أخرى في كل استخدام: PhoneNumber(String) أو OddNumber(u32).
  • أظهر كيفية إضافة قيمة f64 إلى نوع Newtons عن طريق الوصول إلى الحقل الفردي في النوع الجديد (newtype).
    • Rust عمومًا لا يحب الأشياء غير الواضحة، مثل فك التغليف التلقائي (automatic unwrapping) أو على سبيل المثال استخدام القيم المنطقية (booleans) كأعداد صحيحة (integers).
    • يتم مناقشة التحميل الزائد للمشغل (Operator overloading) في اليوم الثالث (Day 3) (الأنواع العامة (generics)).
  • المثال هو إشارة دقيقة إلى فشل Mars Climate Orbiter.