Optional (?)
النوع الاختياري Optional Optional (?)
Optional يمثّل قيمة قد تكون موجودة أو غائبة (nil)، ويجبرك Swift على التعامل مع الغياب صراحةً قبل الوصول للقيمة.
أي نوع في Swift يمكن جعله اختياريًا بإضافة ? بعده، فيصبح إمّا يحمل قيمة من ذلك النوع أو nil. هذا يمنع أخطاء 'null pointer' الشائعة في لغات أخرى لأن المترجم يمنعك من استخدام قيمة اختيارية مباشرة دون فكّها أولًا.
الفكّ الإجباري بـ ! يتجاوز هذا الأمان ويتعطّل البرنامج فورًا إن كانت القيمة nil، لذا يُستخدم فقط عند يقين تام.
الصياغة
var name: Type? = nil var name: Type? = value
📄 مثال
var username: String? = nil
username = "براء"
if let name = username {
print("مرحبًا \(name)")
} else {
print("لا يوجد اسم")
}أهم النقاط
| العنصر | الوظيفة |
|---|---|
| Type? | نوع اختياري: يحمل قيمة من Type أو nil |
| ! | فكّ إجباري — يتعطّل البرنامج إن كانت القيمة nil |
| ?? | عامل الدمج: يعطي قيمة بديلة عند nil |
💡 نصائح عملية
- تجنّب الفكّ الإجباري ! إلا عند ضمان مطلق بوجود القيمة
- استخدم ?? لتوفير قيمة افتراضية بسطر واحد بدل if/else كامل
⚠️ أخطاء شائعة
- فكّ اختياري بـ ! دون التأكد من قيمته — أشهر سبب لتعطّل تطبيقات Swift
- الخلط بين Optional فارغ (nil) وقيمة فعلية فارغة مثل نص "" أو مصفوفة []
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار SWIFT الكامل بالعربي.