أنواع البيانات
أنواع البيانات
Section titled “أنواع البيانات”مرجع شامل لجميع أنواع البيانات المدعومة في لغة كنوز.
الأنواع البسيطة
Section titled “الأنواع البسيطة”الأعداد الصحيحة
Section titled “الأعداد الصحيحة”| النوع | الحجم | النطاق | الوصف |
|---|---|---|---|
صحيح | 32/64 بت | - | عدد صحيح افتراضي |
ص32 | 32 بت | -2^31 إلى 2^31-1 | عدد صحيح 32 بت |
ص64 | 64 بت | -2^63 إلى 2^63-1 | عدد صحيح 64 بت |
دع عدد: صحيح = 42;دع كبير: ص64 = 9223372036854775807;دع صغير: ص32 = 2147483647;الأعداد العشرية
Section titled “الأعداد العشرية”| النوع | الحجم | الدقة | الوصف |
|---|---|---|---|
عشري | 64 بت | ~15 رقم | عدد عشري افتراضي |
ع32 | 32 بت | ~7 أرقام | عدد عشري 32 بت |
ع64 | 64 بت | ~15 رقم | عدد عشري 64 بت |
دع بي: عشري = 3.14159265359;دع صغير: ع32 = 3.14;دع دقيق: ع64 = 3.141592653589793;المنطقي
Section titled “المنطقي”| النوع | القيم | الوصف |
|---|---|---|
منطقي | صح, خطأ | قيمة منطقية |
دع نشط: منطقي = صح;دع مخفي: منطقي = خطأ;
إذا نشط { اطبع("الحالة نشطة");}| النوع | الوصف |
|---|---|
حرف | حرف Unicode واحد |
دع حرف_عربي: حرف = 'ع';دع حرف_انجليزي: حرف = 'A';دع رمز: حرف = '🌍';| النوع | الوصف |
|---|---|
نص | سلسلة نصية |
دع اسم: نص = "أحمد محمد";دع رسالة = "مرحباً بالعالم";
// نص متعدد الأسطردع قصيدة = "السطر الأولالسطر الثانيالسطر الثالث";الأنواع المركبة
Section titled “الأنواع المركبة”المصفوفات
Section titled “المصفوفات”مجموعة من العناصر من نفس النوع بحجم ثابت.
// تعريف مصفوفةدع أعداد: [صحيح; 5] = [1, 2, 3, 4, 5];
// استنتاج النوعدع فواكه = ["تفاح", "موز", "برتقال"];
// مصفوفة متغيرةدع متغير درجات = [85, 90, 78, 92];درجات[0] = 95;
// الوصول للعناصراطبع_صحيح(أعداد[0]); // 1الصفوف (Tuples)
Section titled “الصفوف (Tuples)”مجموعة من القيم من أنواع مختلفة.
// صف بسيطدع نقطة = (10, 20);
// صف بأنواع مختلفةدع سجل: (نص, صحيح, منطقي) = ("أحمد", 25, صح);
// الوصول للعناصردع س = نقطة.0; // 10دع ص = نقطة.1; // 20المتجهات (Vectors)
Section titled “المتجهات (Vectors)”مجموعة ديناميكية من العناصر.
// إنشاء متجهدع متغير أعداد: متجه<صحيح> = متجه[];
// إضافة عناصرأعداد.ادفع(10);أعداد.ادفع(20);أعداد.ادفع(30);
// الطولاطبع_صحيح(أعداد.طول()); // 3
// الوصولاطبع_صحيح(أعداد[0]); // 10
// التكرارلكل عدد في أعداد { اطبع_صحيح(عدد);}القاموس (HashMap)
Section titled “القاموس (HashMap)”مجموعة من أزواج مفتاح-قيمة.
// إنشاء قاموسدع متغير درجات: قاموس<نص, صحيح> = قاموس[];
// إضافة عناصردرجات.أضف("أحمد", 95);درجات.أضف("محمد", 88);درجات.أضف("سارة", 92);
// الوصول للقيمةطابق درجات.اقرأ("أحمد") { بعض(د) => { اطبع_صحيح(د); } عدم => { اطبع("غير موجود"); }}
// التكرارلكل (اسم, درجة) في درجات { اطبع(اسم); اطبع_صحيح(درجة);}الأنواع المركبة المتقدمة
Section titled “الأنواع المركبة المتقدمة”الهياكل
Section titled “الهياكل”هيكل شخص { اسم: نص, عمر: صحيح, متزوج: منطقي}
// إنشاء كائندع ش = شخص { اسم: "أحمد", عمر: 30, متزوج: صح};
// الوصول للحقولاطبع(ش.اسم);اطبع_صحيح(ش.عمر);التعدادات
Section titled “التعدادات”تعداد لون { أحمر, أخضر, أزرق}
تعداد حالة { متصل, منفصل, جاري_الاتصال(صحيح) // مع قيمة مرفقة}
دع اللون = لون::أحمر;
طابق اللون { لون::أحمر => { اطبع("أحمر"); } لون::أخضر => { اطبع("أخضر"); } لون::أزرق => { اطبع("أزرق"); }}الأنواع الخاصة
Section titled “الأنواع الخاصة”النوع الاختياري
Section titled “النوع الاختياري”للقيم التي قد تكون موجودة أو غير موجودة.
// تعريف اختياريدع قيمة: اختياري<صحيح> = بعض(42);دع فارغ: اختياري<صحيح> = عدم;
// المطابقةطابق قيمة { بعض(ق) => { اطبع_صحيح(ق); } عدم => { اطبع("لا قيمة"); }}
// دالة ترجع اختياريدالة ابحث(أعداد: [صحيح; 5], هدف: صحيح) -> اختياري<صحيح> { لكل ي في 0..5 { إذا أعداد[ي] == هدف { أرجع بعض(ي); } } أرجع عدم;}نوع النتيجة
Section titled “نوع النتيجة”للعمليات التي قد تنجح أو تفشل.
// دالة ترجع نتيجةدالة قسمة(أ: صحيح, ب: صحيح) -> نتيجة<صحيح, نص> { إذا ب == 0 { أرجع فشل("لا يمكن القسمة على صفر"); } أرجع موافق(أ / ب);}
// التعامل مع النتيجةطابق قسمة(10, 2) { موافق(ناتج) => { اطبع_صحيح(ناتج); } فشل(خطأ) => { اطبع(خطأ); }}أنواع المراجع
Section titled “أنواع المراجع”| النوع | الوصف |
|---|---|
&ن | مرجع للقراءة فقط |
&متغير ن | مرجع قابل للتغيير |
دالة مربع(مرجع_عدد: &صحيح) -> صحيح { أرجع (*مرجع_عدد) * (*مرجع_عدد);}
دالة ضاعف(مرجع_عدد: &متغير صحيح) { *مرجع_عدد *= 2;}
دع متغير س = 5;اطبع_صحيح(مربع(&س)); // 25
ضاعف(&متغير س);اطبع_صحيح(س); // 10الأنواع العامة (Generics)
Section titled “الأنواع العامة (Generics)”// هيكل عامهيكل صندوق<ن> { قيمة: ن}
دع صندوق_عدد = صندوق<صحيح> { قيمة: 42 };دع صندوق_نص = صندوق<نص> { قيمة: "مرحباً" };
// دالة عامةدالة طباعة_نوع<ن>(قيمة: ن) { // استخدام القيمة}جدول تحويل الأنواع
Section titled “جدول تحويل الأنواع”| من | إلى | الدالة |
|---|---|---|
صحيح | نص | صحيح_لنص(س) |
عشري | صحيح | عشري_لصحيح(س) |
نص | صحيح | تحليل النص |
// تحويل صحيح إلى نصدع عدد = 42;دع نص_عدد = صحيح_لنص(عدد);
// تحويل عشري إلى صحيحدع عشري_ق = 3.7;دع صحيح_ق = عشري_لصحيح(عشري_ق); // 3