Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

ما هي القيم الاختيارية

جزء من قسم الأساسيات في رحلة Swift على Coddy. الدرس 11 من 86.

في بعض الأحيان قد لا تحتوي المتغيرات على قيمة على الإطلاق. في Swift، نعبر عن غياب القيمة باستخدام optionals. المتغير من نوع optional يقول "هناك قيمة، وهي تساوي x" أو "لا توجد قيمة على الإطلاق."

لإعلان optional، أضف علامة استفهام ? بعد النوع:

var nickname: String? = "Alex"
var age: Int? = nil

في المثال أعلاه، يحمل nickname القيمة "Alex"، بينما يحمل age القيمة nil — وهي طريقة Swift للقول "لا قيمة". لا يمكن للمتغيرات العادية أن تكون nil، لكن الـ optionals يمكنها ذلك.

فكّر في الـ optional كأنه صندوق قد يحتوي على شيء ما أو قد يكون فارغًا. قبل استخدام ما بداخله، عليك التحقق مما إذا كان هناك شيء بالفعل. هذه ميزة أمان رئيسية في Swift تساعد في منع الأعطال الناتجة عن القيم المفقودة غير المتوقعة.

var score: Int? = 100
print(score) // Optional(100)

score = nil
print(score) // nil

لاحظ أنه عند طباعة optional يحتوي على قيمة، فإنه يظهر Optional(100) بدلاً من مجرد 100. للوصول إلى القيمة الفعلية بداخله، عليك unwrap الـ optional — وهو ما سنغطيه في الدروس القادمة.

challenge icon

التحدي

سهل

اكتب دالة createOptional تأخذ رقمًا وترجع سلسلة نصية String تعرض كيف سيبدو ذلك الرقم عند طباعته كـ optional.

هام: ترجع هذه الدالة String. أنت تكتب نصًا يشبه الـ optional، ولست ترجع قيمة optional فعلية.

عندما تقوم بطباعة optional يحتوي على قيمة، يعرضه Swift بالتنسيق Optional(value).

تذكير بصياغة الدالة: في Swift، تستخدم الدالة التي ترجع قيمة السهم -> لتحديد نوع الإرجاع، والكلمة المفتاحية return لإرسال النتيجة. على سبيل المثال:

func myFunction(param: Int) -> String {<br>    return "result"<br>}

يمكنك بناء سلسلة الإرجاع باستخدام string interpolation: "Optional(\(value))" — الجزء \(value) يدرج الرقم مباشرة داخل السلسلة النصية.

المعاملات:

  • value (Int): الرقم المراد تغليفه بتنسيق optional

المخرجات: نص بالتنسيق Optional(value) حيث value هو الرقم الممرر.

مثال: إذا كانت المدخلات 100، قم بإرجاع "Optional(100)"

جرّب بنفسك

func createOptional(value: Int) -> String {
    // أرجع String تبدو كـ optional، وليست optional حقيقية
    // أدرج الرقم بين الأقواس باستخدام استيفاء السلسلة النصية
    return "Optional()"
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: Playground لـ Swift