0Pricing
Swift Academy · درس

مقدمة إلى Optionals: ‏? وnil وif let وguard let و??

تعرّف إلى Optionals: التصريح عنها باستخدام ?، وتمثيل القيم المفقودة باستخدام nil، وإلغاء تغليفها عبر if let وguard let و??

مقدمة إلى Optionals: ‏? وnil وif let وguard let و?? درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 3 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 3 دروس في المجموع.

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

تمثّل القيم الاختيارية قيمة قد تكون موجودة أو nil. أضيفوا ? إلى النوع لجعله اختياريًا.

  • التعامل مع غياب القيمة صراحةً
  • تجنّب العديد من حالات الانهيار

ربط if let

صرّحوا عن القيمة باستخدام ?، ثم استخدموا if let لفك تغليفها بأمان عند وجودها.

var nickname: String? = nil
print("nickname =", String(describing: nickname))

// Optional binding with if let
let input: String? = "Ada"
if let name = input {
    print("Hello, \\(name)")
} else {
    print("No name")
}

guard let

تفك guard let التغليف وتخرج مبكرًا عند وجود nil، مما يحافظ على بساطة التعليمات البرمجية وسهولة قراءتها.

func greet(_ maybeName: String?) {
    guard let name = maybeName else {
        print("Missing name"); return
    }
    print("Hi, \\(name)!")
}
greet(nil)
greet("Grace")

دمج القيم الاختيارية (??)

استخدموا ?? لتوفير قيمة افتراضية عندما تكون القيمة الاختيارية هي nil.

let provided: String? = nil
let username = provided ?? "Guest"
print("Username:", username)

التسلسل الاختياري

يوقف التسلسل الاختياري (?.) سلسلة الوصول عند كون أي حلقة فيها nil.

struct Profile { var city: String? }
struct User { var profile: Profile? }

let u1 = User(profile: Profile(city: "Paris"))
let u2 = User(profile: nil)

// Optional chaining safely traverses missing links
print(u1.profile?.city?.uppercased() ?? "No city")  // "PARIS"
print(u2.profile?.city ?? "No city")                // "No city"

نصائح ومطبات

نصائح:

  • تجنّبوا ! (فك التغليف القسري) إلا إذا كنتم متأكدين تمامًا من أن القيمة ليست nil.
  • فضّلوا if let أو guard let لتحسين الوضوح.
  • استخدموا ?? لتوفير قيم افتراضية آمنة.

سلوك guard let

فحص سريع: ماذا تفعل guard let؟

مراجعة

مراجعة: صرّحوا عن القيم الاختيارية باستخدام ?، ومثّلوا غياب القيمة باستخدام nil، وفكّوا التغليف باستخدام if let أو guard let، ووفّروا قيمًا افتراضية باستخدام ??. استخدموا التسلسل الاختياري للوصول بأمان إلى القيم المتتابعة.

الأسئلة الشائعة

هل درس «مقدمة إلى Optionals: ‏? وnil وif let وguard let و??» مجاني؟

نعم — نص درس «مقدمة إلى Optionals: ‏? وnil وif let وguard let و??» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 3 دروس في المجموع.

ماذا ستتعلم في «مقدمة إلى Optionals: ‏? وnil وif let وguard let و??»؟

تعرّف إلى Optionals: التصريح عنها باستخدام ?، وتمثيل القيم المفقودة باستخدام nil، وإلغاء تغليفها عبر if let وguard let و?? تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟

لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 3.

كم من الوقت يستغرق درس «مقدمة إلى Optionals: ‏? وnil وif let وguard let و??»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟

نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. let مقابل var، والاستدلال على الأنواع، والقيم الحرفية، والصفوف
  2. الأنواع الأساسية: الأعداد وBool وString وCharacter
  3. مقدمة إلى Optionals: ‏? وnil وif let وguard let و??
← العودة إلى Swift Academy