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

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

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

أحيانًا قد لا تكون للمتغير قيمة على الإطلاق. في Swift، نمثّل غياب القيمة باستخدام optionals. يشير optional إلى «توجد قيمة، وهي تساوي x» أو «لا توجد قيمة على الإطلاق».

للتصريح عن قيمة اختيارية، أضف علامة استفهام ? بعد النوع:

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

في المثال أعلاه، يحتوي nickname على القيمة "Alex"، بينما يحتوي age على nil: وهي طريقة Swift للتعبير عن «لا توجد قيمة». لا يمكن للمتغيرات العادية أن تكون nil، لكن يمكن للمتغيرات الاختيارية ذلك.

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

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

score = nil
print(score) // nil

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

challenge icon

التحدي

سهل

اكتب دالة createOptional تأخذ number وتُرجع string توضّح كيف سيبدو ذلك number عند طباعته كـ optional.

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

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

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

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

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

المعاملات:

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

القيمة المُرجعة: string بالتنسيق Optional(value) حيث يكون value هو number المقدَّم.

مثال: إذا كان الإدخال هو 100، فأرجع "Optional(100)"

جرّب بنفسك

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

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

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

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