ما هو Optional (النوع الاختياري) في Swift ولماذا هو مطلوب؟
مرحباً بالجميع! لقد بدأت للتو في تعلم Swift وواجهت مفهومًا لم أفهمه تمامًا بعد — Optional (القيم الاختيارية). في لغات أخرى، مثل Java أو C++، اعتدت على أن المتغير يمكن أن يكون ببساطة مساويًا لـ null، وهذا طبيعي. لكن في Swift الأمر مختلف: المترجم يشتكي باستمرار إذا حاولت تعيين nil لمتغير عادي.
هذا مثال يربكني. أكتب تطبيق ملاحظات بسيط وأريد أن يكون حقل نص الملاحظة فارغًا (nil) إذا لم يدخل المستخدم شيئًا:
```swift
var noteTitle: String = nil // خطأ: لا يمكن تعيين nil لنوع 'String'
```
المترجم يعطي خطأ. أفهم أنني بحاجة لاستخدام علامة الاستفهام:
```swift
var noteTitle: String? = nil // هذا يعمل
```
لكن عندها يحدث لدي ارتباك عند التعامل مع هذه القيمة. على سبيل المثال، إذا أردت طباعة طول السلسلة أو دمجها مع سلسلة أخرى، المترجم يشتكي مرة أخرى:
```swift
var noteTitle: String? = "ملاحظتي"
pr