السلاسل النصية هي []const u8
تعرّفوا إلى سبب كون سلاسل Zig شرائح من البايتات
السلاسل النصية هي []const u8 درس مجاني في Zig Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Zig Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Zig Academy 4 دروس في المجموع.
لا يوجد نوع للسلاسل النصية
لا يحتوي Zig على نوع مخصص للسلاسل النصية. فالنص ليس سوى شريحة من البايتات، ولذلك تعيد استخدام الأدوات نفسها التي تعرفها للمصفوفات. 📦
إنها مجرد بايتات
سلسلة Zig النصية من النوع []const u8: وهي نافذة للقراءة فقط على تسلسل من البايتات ذات 8 بتات. ويخزن كل بايت عددًا من 0 إلى 255.
const greeting: []const u8 = "hello";لماذا const
توجد القيم الحرفية للسلاسل النصية في ذاكرة للقراءة فقط، ولذلك يكون نوعها []const u8. وتعني const أنه يمكنك قراءة البايتات، لكن لا يمكنك الكتابة من خلال هذه الشريحة مطلقًا.
u8 يساوي بايتًا واحدًا
نوع العنصر u8 هو عدد صحيح غير موقّع من 8 بتات. ويجعل التعامل مع النص بوصفه u8 لغة Zig صريحة: فالسلسلة النصية بايتات خام، وليست محارف سحرية.
للشريحة طول
تحمل الشريحة مؤشرًا وطولًا معًا، ولذلك تعرف السلسلة النصية حجمها بنفسها. ولا تحتاج أبدًا إلى متغير طول منفصل أو مُنهٍ.
const name = "Zig";
// name.len == 3UTF-8 حسب الاصطلاح
ملفات مصدر Zig مشفّرة بترميز UTF-8، ولذلك تخزن القيم الحرفية النص بصيغة بايتات UTF-8. وقد يحتل رمز تعبيري أو حرف منمّق عدة بايتات، لا بايتًا واحدًا.
الطول يحسب البايتات
بما أن النص يتكون من بايتات، يعيد .len عدد البايتات، لا عدد المحارف. وبالنسبة إلى ASCII العادي، يتطابق الرقمان تمامًا.
const s = "abc";
std.debug.print("{}", .{s.len}); // 3الفهرسة تعيد بايتًا
تعيد فهرسة السلسلة النصية قيمة بايت u8 واحدة، لا كائن محرف. وبالنسبة إلى ASCII، يكون ذلك البايت هو رمز الحرف.
const s = "AB";
const first = s[0]; // 65, the Aلا حاجة إلى مُنهٍ صفري
على خلاف C، لا تعتمد شريحة Zig على بايت صفري في النهاية لتحديد نهايتها. فالطول المخزّن يخبر الشيفرة مسبقًا بموضع توقف النص.
طباعة سلسلة نصية
تطبع النص باستخدام محدد التنسيق {s}، الذي يخبر Zig بعرض البايتات كسلسلة نصية بدلًا من عرضها كأرقام.
std.debug.print("{s}\n", .{"hello"});البايتات القابلة للتعديل تحتاج إلى [] u8
احذف const للحصول على شريحة []u8 قابلة للكتابة. عندها يمكنك تغيير البايتات في موضعها، ما دامت موجودة في ذاكرة تملكها.
تحقّق سريع
فكّر في النوع الحقيقي الكامن وراء قيمة سلسلة Zig النصية الحرفية.
مراجعة
تعلّمت أن نص Zig ليس سوى []const u8: بايتات للقراءة فقط لها طول، وتستخدم UTF-8 حسب الاصطلاح، وتُفهرس ويُقاس طولها بالبايتات. 🎯
تعلم Zig مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 30
- الدروس
- 120
الأسئلة الشائعة
هل درس «السلاسل النصية هي []const u8» مجاني؟
نعم — نص درس «السلاسل النصية هي []const u8» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Zig Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Zig Academy 4 دروس في المجموع.
ماذا ستتعلم في «السلاسل النصية هي []const u8»؟
تعرّفوا إلى سبب كون سلاسل Zig شرائح من البايتات تتمرن على Zig Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Zig Academy؟
لا تُشترط خبرة سابقة. Zig Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «السلاسل النصية هي []const u8»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Zig Academy هذا؟
نعم. كل درس في Zig Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- السلاسل النصية هي []const u8
- ثوابت السلاسل النصية ومحارف الهروب
- مقارنة البايتات والبحث فيها
- تنسيق النص باستخدام std.fmt