النتائج القابلة للاسترداد
لبات 0.7.0 · الإصدار الحالي
عمليات 0.7.0 الحالية ودعم المضيف والأمثلة وقواعد الإخفاق.
محتويات الصفحة
قيم قابلة للاسترداد
في مضيفي لبات 0.7.0، تحمل نتيجة<T>/result<T> حمولة ناجحة من النوع T أو معلومات_خطأ/error_info. النتيجة الفاشلة مسار تحكم عادي؛ لا تصدر تشخيصا أو موضع مصدر أو تتبع استدعاء، ولا توقف التنفيذ. تختار أنت إعادة المحاولة أو الاستمرار أو إرجاع حالة العملية.
تستنتج نجاح/success(value) نوع الحمولة أو تفحصه مقابل نوع النتيجة المتوقع. تنشئ success() قيمة result<unit>، أي نجاحا بلا حمولة. تأخذ إخفاق/failure(code, message) نصين وتحتاج نوع النتيجة المتوقع من تصريح أو إسناد أو معامل أو إرجاع. يفشل الفحص دون هذا السياق بسبب result-type-required.
افحص قبل قراءة الفرع
| الحقل | القيمة المستقبلة | النوع |
|---|---|---|
نجاح/ok |
result<T> |
bool |
قيمة/value |
result<T> ناجحة |
T باستثناء unit |
الخطأ/error |
result<T> فاشلة |
error_info |
الرمز/code |
error_info |
string |
الرسالة/message |
error_info |
string |
استخدم :: اللاحقة وافحص ok قبل قراءة الفرع الموافق. توقف قراءة value عند الإخفاق أو error عند النجاح التنفيذ بسبب wrong-result-branch. لا تحتوي result<unit> على value قابلة للقراءة؛ محاولة قراءتها خطأ مصدر unit-value-not-allowed. ترفض مساواة نتيجتين كاملتين. يرتبط الوصول إلى الحقل أشد من الحساب ولا يترجم حقول سجلات المستخدم.
التنفيذ: المتصفح والمضيف الأصلي · لبات 0.7.0
- لا يتطلب معرفة سابقة لفتحه وفحصه.
الإدخال: لا يحتاج إلى أسطر إدخال.
دالة حي(الاسم: نص) -> نتيجة<نص> {
إذا (الاسم يطابق "") {
أرجع إخفاق("empty-name", "name was empty").
}
أرجع نجاح("hello " + الاسم).
}
دالة ابدأ_الرئيسية() -> ص64 {
دع جيد: نتيجة<نص> = حي("aspl").
إذا (جيد::نجاح) {
اطبع(جيد::قيمة).
اطبع(" ").
} وإلا {
أرجع 1.
}
دع سيئ: نتيجة<نص> = حي("").
إذا (سيئ::نجاح) {
أرجع 2.
}
اطبع(سيئ::الخطأ::الرمز).
أرجع 0.
}
النتائج المتوقعة
{
"browser": {
"check": "success",
"class": "success",
"output": "hello aspl empty-name",
"processStatus": 0
},
"native": {
"check": 0,
"status": 0,
"output": "hello aspl empty-name"
}
}الرموز والرسائل والنسخ
اختر الفرع بحسب رموز الخطأ الثابتة مثل invalid-number وnumber-out-of-range وnot-found، لا بحسب صياغة الرسالة. تختار دالتك رموزها ورسائلها الخاصة. للنتائج وحمولاتها المحتفظ بها دلالات قيمة؛ إسقاطات النتائج للقراءة فقط. أسند الحمولة إلى ربط متغير/var لتعديل نسختك.
أنواع الإخفاق المختلفة
يعيد النص العددي غير الصالح وإخفاق الملف النصي المتوقع نتائج. تمنع الأنواع أو الحقول غير الصالحة نجاح الفحص. الفهرسة خارج النطاق والوصول إلى الفرع الخاطئ توقفان غير قابلين للاسترداد. حدود الذاكرة والزمن وفشل التخصيص والإيقاف نتائج تنفيذ منفصلة؛ ليست نتائج فاشلة يمكنك التقاطها.
تعرض أمثلة التحليل ودليل الملفات الاسترداد مع استمرار البرنامج. يشرح مرجع التشخيص أخطاء المصدر والتوقفات.
النطاق والأمثلة الكاملة
توسع النتائج القابلة للاسترداد MVP التاريخي. اقرأ كل صيغ النتائج وواجهة الملفات النصية لقراءة result<string> وكتابة result<unit>.