# late

---

**`late` keyword (Dart)**  
- تستخدمها لما تعرف متغير مش هيتعيّن فوري، لكن متأكد إنه هيخد قيمة قبل ما تستخدمه.  
- مثال:
  ```dart
  late String description;
  void setup() {
    description = "ready";
  }
  void main() {
    setup();
    print(description);
  }
  ```
- `late` بيفضل يبقى lazy: لو المتغير من النوع `late final`، القيمة بتتحسب أول مرة تستخدمه، بعدها يثبت.  
- لو استخدمته بدون ما تعطيه قيمة قبل الاستخدام، Dart هيرمي `LateInitializationError`.  
- مفيد في الـ classes أو عندك dependent initialization (بحاجة context مش متوفر في constructor).