يمكن اعتبار إصدار Nim 0.20 مرشحًا لإصدار أول إصدار مستقر 1.0 ، بما في ذلك العديد من تغييرات كسر التوافق اللازمة لتشكيل أول فرع مستقر يلتزم بحالة اللغة. يوصف الإصدار 1.0 بأنه إصدار دعم مستقر وطويل الأجل يضمن الحفاظ على التوافق مع الإصدارات السابقة في الجزء المستقر من اللغة. بشكل منفصل ، سيكون الوضع التجريبي متاحًا أيضًا في المترجم ، حيث سيتم تطوير ميزات جديدة قد تكسر التوافق مع الإصدارات السابقة.
من بين التغييرات المقترحة في Nim 0.20 ، يمكننا تسليط الضوء على:
- "ليس" دائمًا عامل تشغيل أحادي ، أي تعابير مثل "تأكيد (وليس أ)" غير صالحة الآن ولا يُسمح إلا بـ "التأكيد ليس" ؛
- تم تمكين عمليات التحقق الصعبة لتحويل الأعداد الصحيحة والأرقام الحقيقية في وقت الترجمة ، أي سينتج عن التعبير "const b = uint16 (-1)" الآن خطأ ، حيث لا يمكن تحويل -1 إلى نوع عدد صحيح بدون إشارة ؛
- يتم توفير تفريغ مجموعات tuple للثوابت ومتغيرات الحلقة.
على سبيل المثال ، يمكن الآن استخدام مهام مثل 'const (d، e) = (7، "eight")' و "for (x، y) in f" ؛ - توفير التهيئة الافتراضية للتجزئة والجداول. على سبيل المثال ، بعد التصريح عن "var s: HashSet [int]" ، يمكنك تنفيذ "s.incl (5)" على الفور ، والذي كان يؤدي إلى حدوث خطأ ؛
- تحسين محتوى معلومات الأخطاء للمشكلات المتعلقة بمشغل "الحالة" وفهرس الصفيف خارج الحدود ؛
- يحظر تغيير طول الجدول أثناء التكرار.
المصدر: opennet.ru