Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

الأنواع المدمجة

تُقدّم لغة ص 11 نوعًا مدمجًا. أسماؤها يُصدرها المعجمي مُعرِّفات (لا كلمات محجوزة)، فيجوز استعمالها أسماءً خارج موضع النوع.

المصدر: keywords.yaml (فئة builtin_types) + types.yaml.

النوعالإنجليزيّةالفئةالوصف
رقمintegerعدديّعدد صحيح (i64)
عشريdoubleعدديّعدد عشري (f64)
نصstringنصّيّنص (UTF-8)
منطقيbooleanمنطقيّقيمة منطقية (صحيح/خطأ)
فراغvoidخاصّنوع الإرجاع الفارغ — لا قيمة. متمايز عن «عدم» (type.null): «فراغ» ما لم يُرجَع أصلاً (مفتاح غائب، بحثٌ بلا مطابقة)، و«عدم» قيمةُ لاشيء الصريحة. فحصُ أحدهما وحده يمرّ ناقصًا
عدمnullخاصّالعدم — غياب القيمة، متمايز عن فراغ (void). وتمثيلُه حارسٌ صحيحُ البتّات، فالحكمُ عليه يلزمُ أن يقومَ على وسمِ النوعِ لا على شكلِ التمثيل: مقارنةُ العدمِ بقيمةٍ من نوعٍ آخر تُحسَمُ بتطبيعِ الطرفِ الآخرِ إلى عرضِ الحارسِ ومقارنتِه به عدديًّا، فلا تُستدعى مقارنةُ نصوصٍ على الحارسِ أبدًا؛ و«عدم == عدم» صحيح. والوسمُ الساكنُ لا يكفي وحدَه ولا يمكنُ أن يكفي: خانةٌ نوعُها المُصرَّحُ «نصّ» تقبلُ نصًّا في موقعِ نداءٍ وعدمًا في آخر، فلا وسمَ ساكنًا واحدًا يصدُقُ على الاثنَين — والسؤالُ نفسُه سؤالُ زمنِ تشغيل. لذلكَ مقارنةُ النصوصِ آمنةٌ من العدمِ وقتَ التشغيل: يُفحَصُ الطرفانِ على الحارسِ قبلَ أيِّ قراءةِ ذاكرة، فالعدمُ يساوي العدمَ ولا يساوي نصًّا، ولا يُمرَّرُ الحارسُ إلى مقارنةِ نصوصٍ أبدًا
مصفوفةarrayمركّبمصفوفة<T> ديناميكية
خريطةmapمركّبخريطة<K,V>
أيanyخاصّأي نوع (ديناميكي)
طبيعي64uint64عدديّعدد طبيعي 64-بت
بايتbyteعدديّبايت (u8، 0–255)

القيم الحرفيّة المحجوزة

متغير يعمل = صحيح     # true
متغير متوقّف = خطأ    # false
متغير قيمة = لاشيء    # null

الأنواع الاختياريّة وأمان العدم

يُكتب النوع الاختياريّ باللاحقة ؟ ليقبل القيمة أو لاشيء، ويُعالَج بعوامل ؟. (وصول آمن) و؟؟ (اندماج فارغ):

متغير الوسط: نص؟ = لاشيء
متغير الطول = الوسط؟.الطول
متغير قيمة = الوسط ؟؟ "مجهول"

راجع العوامل والأسبقيّة لعوامل أمان العدم ورموزها الدقيقة.