ما هو null/nil في Swift وكيفية التعامل معه؟
مرحبًا بالجميع! أتعلم Swift وواجهت مفهوم null/nil. في لغات أخرى (مثل Java, C#) اعتدت على مراجع null و NullPointerException. لكن في Swift، كما فهمت، nil ليس مؤشرًا، بل غياب قيمة للأنواع الاختيارية (Optional).
لدي مثال بسيط: أحاول الحصول على اسم مستخدم من قاموس، لكن إذا لم يكن المفتاح موجودًا — يتعطل التطبيق.
let user: [String: Any] = ["name": "Alice"]
let name = user["age"] as! String // تعطل إذا لم يكن المفتاح موجودًا
print(name)جربت استخدام if let و guard let، لكني لا أفهم تمامًا كيفية التعامل مع nil بشكل صحيح في مواقف مختلفة. مثلًا:
- ما الفرق بين Optional و forced unwrapping؟
- متى أستخدم ?? (nil-coalescing) بدلاً من if let؟
- هل يمكن لمتغير عادي (غير Optional) أن يكون nil؟
- كيف أتجنب الأعطال عند العمل مع JSON و Codable؟
أتوقع شرحًا واضحًا لفلسفة nil في Swift وأفضل الممارسات (best practices) للعمل الآمن معها.