الأنواع المدمجة
تُقدّم لغة ص 17 نوعًا مدمجًا. أسماؤها يُصدرها المعجمي مُعرِّفات (لا كلمات محجوزة)، فيجوز استعمالها أسماءً خارج موضع النوع.
المصدر:
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 | خاصّ | أي نوع (ديناميكي) |
طبيعي | uint64 | عدديّ | عدد طبيعي 64-بت |
طبيعي8 | uint8 | عدديّ | عدد طبيعي 8-بت (0–255) |
رقم8 | int8 | عدديّ | عدد صحيح 8-بت |
رقم16 | int16 | عدديّ | عدد صحيح 16-بت |
رقم32 | int32 | عدديّ | عدد صحيح 32-بت |
طبيعي16 | uint16 | عدديّ | عدد طبيعي 16-بت |
طبيعي32 | uint32 | عدديّ | عدد طبيعي 32-بت |
عشري32 | float32 | عدديّ | عشري 32-بت |
القيم الحرفيّة المحجوزة
متغير يعمل = صحيح # true
متغير متوقّف = خطأ # false
متغير قيمة = لاشيء # null
الأنواع الاختياريّة وأمان العدم
يُكتب النوع الاختياريّ باللاحقة ؟ ليقبل القيمة أو لاشيء، ويُعالَج بعوامل ؟. (وصول آمن) و؟؟ (اندماج فارغ):
متغير الوسط: نص؟ = لاشيء
متغير الطول = الوسط؟.الطول
متغير قيمة = الوسط ؟؟ "مجهول"
راجع العوامل والأسبقيّة لعوامل أمان العدم ورموزها الدقيقة.