تكرار السؤال: …
الإجابة المختصرة
late تؤجل تهيئة متغير غير قابل لـ null، لكن قراءة المتغير قبل إسناده تسبب LateInitializationError وقت التشغيل.
الشرح
استخدم late عندما تكون متأكدًا أن القيمة ستُجهّز قبل أول قراءة، مثل قيمة تُحسب داخل دورة حياة كائن. الكلمة لا تلغي الحاجة للتهيئة؛ هي فقط تنقل التحقق من وقت الترجمة إلى وقت التشغيل، لذلك لا تصلح لإخفاء ترتيب تهيئة غير واضح.
مثال بالكود
late final String token;
void configure() {
token = loadToken();
}أخطاء شائعة
- استخدام late لمجرد إسكات المترجم من غير ضمان ترتيب التهيئة.
- نسيان أن late final لا يمكن إسنادها مرتين.