Zig Academy · درس

الشرائح: مؤشر وطول

أشيروا إلى نافذة داخل مصفوفة

الدرس 2 من 413 خطوة

الشرائح: مؤشر وطول درس مجاني في Zig Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Zig Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Zig Academy 4 دروس في المجموع.

سبب وجود الشرائح

تحمل المصفوفات طولًا ثابتًا، لكن الدوال تحتاج غالبًا إلى العمل مع أي طول. وتحل الشريحة هذه المشكلة بوصفها تسلسلًا مرنًا من العناصر. 🔪

جزآن من البيانات

الشريحة في الواقع شيئان مضمّنان معًا: مؤشر إلى العنصر الأول، وطول يحدد عدد العناصر التالية.

نوع الشريحة

تكتب نوع الشريحة على الصورة []T، بقوسين مربعين فارغين ونوع عنصر. وتعني []i32 شريحة من أعداد صحيحة موقّعة.

var view: []i32 = undefined;

الشرائح تستعير ولا تملك

لا تملك الشريحة ذاكرتها؛ بل تستعير عرضًا لشيء آخر، عادةً مصفوفة. ويجب أن تبقى البيانات الداعمة موجودة بعد انتهاء عمر الشريحة.

يُحدَّد الطول وقت التشغيل

على خلاف المصفوفة، تكون قيمة len في الشريحة قيمةً وقت التشغيل. وهذا ما يسمح لنوع شريحة واحد بالتعامل مع أحجام مختلفة كثيرة.

const n = view.len;

من مصفوفة إلى شريحة

حوّل المصفوفة بأكملها إلى شريحة باستخدام [0..]، أي من الفهرس صفر إلى النهاية. وتشير الشريحة الآن إلى داخل تلك المصفوفة.

var data = [_]i32{ 5, 6, 7 };
const s = data[0..];

فهرسة شريحة

اقرأ العناصر من خلال الشريحة كما تفعل مع المصفوفة تمامًا، باستخدام الأقواس المربعة. ويُضاف الفهرس إلى المؤشر المخزّن للعثور على القيمة.

const middle = s[1];

الشرائح للقراءة فقط

‏[]const u8 شريحة يمكنك القراءة منها، لكن لا يمكنك الكتابة إليها. وتحمي const البيانات المستعارة من التغييرات غير المقصودة.

const msg: []const u8 = "hi";

تمرير الشرائح منخفض التكلفة

يؤدي تمرير شريحة إلى دالة إلى نسخ المؤشر والطول فقط، وليس العناصر. لذلك تمرّر المخازن الكبيرة من دون تكلفة إضافية.

fn sum(items: []const i32) i32 {
    // walk items here
}

تبقى حدود الشرائح خاضعة للتحقق

بما أن الشريحة تعرف طولها، فإن فهرستها تظل متحقَّقًا منها. يؤدي تجاوز len إلى حدوث panic لأسباب تتعلق بالسلامة في عمليات البناء الآمنة.

الشرائح الفارغة صالحة

يمكن أن تحتوي الشريحة على صفر من العناصر. فالشريحة الفارغة يكون len فيها مساويًا للصفر، وهذا أمر طبيعي تمامًا عند تمريرها.

const nothing: []const i32 = &[_]i32{};

تحقّق سريع

فكّر في ما تخزّنه الشريحة فعليًا مقارنةً بالمصفوفة الثابتة. أي زوج يصفها؟

مراجعة

‏الشريحة هي مؤشر بالإضافة إلى طول، وتستعير عرضًا للبيانات الموجودة، وتبقى خاضعة للتحقق من الحدود، ويمكن تمريرها بكلفة منخفضة عن طريق المرجع. 🎯

البدء مجانًا

تعلم Zig مع معلم ذكاء اصطناعي — مجانًا

اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.

الدورات
30
الدروس
120

الأسئلة الشائعة

هل درس «الشرائح: مؤشر وطول» مجاني؟

نعم — نص درس «الشرائح: مؤشر وطول» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Zig Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Zig Academy 4 دروس في المجموع.

ماذا ستتعلم في «الشرائح: مؤشر وطول»؟

أشيروا إلى نافذة داخل مصفوفة تتمرن على Zig Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Zig Academy؟

لا تُشترط خبرة سابقة. Zig Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «الشرائح: مؤشر وطول»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Zig Academy هذا؟

نعم. كل درس في Zig Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. المصفوفات ثابتة الحجم
  2. الشرائح: مؤشر وطول
  3. التقطيع باستخدام array[start..end]
  4. التكرار على الشرائح وتعديلها
← العودة إلى Zig Academy