المصفوفات ثابتة الحجم
صرّحوا عن مصفوفات محددة الحجم وقت الترجمة وفهرسوها
المصفوفات ثابتة الحجم درس مجاني في Zig Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Zig Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Zig Academy 4 دروس في المجموع.
ما الذي تحتويه المصفوفة
تخزّن المصفوفة عددًا ثابتًا من القيم من النوع نفسه، مرتبةً واحدةً تلو الأخرى في كتلة ذاكرة واحدة. 📦
الطول ثابت
في Zig، يُعد الطول جزءًا من نوع المصفوفة ويُحدَّد وقت الترجمة. ولا يمكن أن يزداد أو ينقص بعد التصريح عنه.
التصريح عن مصفوفة
تكتب العدد بين قوسين مربعين، ثم نوع العنصر. وتحتوي [3]i32 على ثلاثة أعداد صحيحة موقّعة بالضبط.
const nums = [3]i32{ 10, 20, 30 };دع Zig تحسب العدد نيابةً عنك
استخدم شرطة سفلية للحجم، وستستنتجه Zig من القيم التي تسردها. وهنا تصبح [_]i32 مصفوفة من ثلاثة عناصر.
const nums = [_]i32{ 1, 2, 3 };يبدأ الفهرس من الصفر
يمكنك الوصول إلى عنصر باستخدام فهرسه بين قوسين مربعين. تبدأ الفهارس من 0، لذا تكون nums[0] أول قيمة تمامًا.
const first = nums[0];طلب الطول
تكشف كل مصفوفة عن حجمها من خلال الحقل len. ويكون هذا الحجم معروفًا وقت الترجمة ولا يتغير.
const count = nums.len; // 3يُتحقق من الحدود
يُكتشف تجاوز نهاية المصفوفة تلقائيًا. ففي البنيات الآمنة، يؤدي الفهرس الخارج عن الحدود إلى حالة هلع وقت التشغيل بدلًا من إفساد صامت للبيانات.
الملء بقيمة واحدة
كرّر عنصرًا واحدًا عبر المصفوفة بأكملها باستخدام المعامل **. وهكذا تنشئ خمسة أصفار من دون كتابة كل واحد منها.
const zeros = [_]u8{0} ** 5;المصفوفات أنواع قيم
يؤدي إسناد مصفوفة إلى أخرى إلى نسخ كل عنصر. وتكون المصفوفتان مستقلتين، لذا لا يؤثر تغيير إحداهما في الأخرى.
تغيير العناصر
صرّح عن المصفوفة باستخدام var لتغيير عناصرها لاحقًا. ثم أسند قيمة عبر فهرس لتحديث خانة واحدة.
var scores = [_]i32{ 0, 0, 0 };
scores[1] = 99;مصفوفات من أي نوع
يمكن أن تكون العناصر من أي نوع، حتى من مصفوفات أخرى. وتُعد [2][3]i32 شبكة صغيرة: صفّان، في كل منهما ثلاثة أعداد صحيحة.
const grid = [2][3]i32{ .{ 1, 2, 3 }, .{ 4, 5, 6 } };تحقق سريع
صرّحت عن const nums = [_]i32{ 1, 2, 3 }. إلى ماذا تُقيَّم nums.len؟
مراجعة
تجمع المصفوفة ثابتة الحجم قيمًا من النوع نفسه: فالطول جزء من النوع، وتبدأ الفهارس من 0، ويبقى الوصول خاضعًا للتحقق من الحدود. 🎯
الأسئلة الشائعة
هل درس «المصفوفات ثابتة الحجم» مجاني؟
نعم — نص درس «المصفوفات ثابتة الحجم» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Zig Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Zig Academy 4 دروس في المجموع.
ماذا ستتعلم في «المصفوفات ثابتة الحجم»؟
صرّحوا عن مصفوفات محددة الحجم وقت الترجمة وفهرسوها تتمرن على Zig Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Zig Academy؟
لا تُشترط خبرة سابقة. Zig Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «المصفوفات ثابتة الحجم»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Zig Academy هذا؟
نعم. كل درس في Zig Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- المصفوفات ثابتة الحجم
- الشرائح: مؤشر وطول
- التقطيع باستخدام array[start..end]
- التكرار على الشرائح وتعديلها