فك القيم باستخدام If Let
جزء من قسم الأساسيات في رحلة Swift على Coddy — الدرس 12 من 86.
للوصول بأمان إلى القيمة الموجودة داخل الاختياري (optional)، نستخدم if let — وهي تقنية تسمى الربط الاختياري (optional binding). يتحقق هذا مما إذا كان الاختياري يحتوي على قيمة، وإذا كان الأمر كذلك، فإنه يقوم بفكها في ثابت مؤقت.
var username: String? = "Swift_Dev"
if let name = username {
print("Welcome, \(name)")
} else {
print("No username found")
}
// مرحباً، Swift_Devهنا، يتحقق if let مما إذا كان username يحتوي على قيمة. وبما أنه يحتوي عليها، يتم فك القيمة في name، الذي يتواجد فقط داخل كتلة if. أما إذا كان username هو nil، فسيتم تنفيذ كتلة else بدلاً من ذلك.
var age: Int? = nil
if let unwrappedAge = age {
print("Age is \(unwrappedAge)")
} else {
print("Age not provided")
}
// لم يتم توفير العمربما أن age هو nil، يفشل الشرط ويتم تنفيذ كتلة else. هذا يمنع الانهيارات التي قد تحدث إذا حاولنا استخدام قيمة مفقودة مباشرة.
التحدي
سهللقد تم تزويدك بالمتغير التالي:
var nickname: String? = "CoddyLearner"استخدم if let لفك تغليف nickname بأمان. إذا كان يحتوي على قيمة، فقم بطباعة Hello, [value]! حيث [value] هو الاسم المستعار الذي تم فك تغليفه. إذا كان nil، فقم بطباعة No nickname set.
ورقة مرجعية
استخدم if let (الربط الاختياري) لفك تغليف الاختياري (optional) بأمان والوصول إلى قيمته:
var username: String? = "Swift_Dev"
if let name = username {
print("Welcome, \(name)")
} else {
print("No username found")
}
// Welcome, Swift_Devإذا كان الاختياري (optional) يحتوي على قيمة، يتم فك تغليفه في ثابت مؤقت موجود فقط داخل كتلة if. أما إذا كان الاختياري nil، يتم تنفيذ كتلة else:
var age: Int? = nil
if let unwrappedAge = age {
print("Age is \(unwrappedAge)")
} else {
print("Age not provided")
}
// Age not providedجرّب بنفسك
var nickname: String? = "CoddyLearner"
// TODO: اكتب كودك بالأسفل
// استخدم if let لفك تغليف nickname بأمان
// إذا كان يحتوي على قيمة، اطبع "!Hello, [value]"
// إذا كان nil، اطبع "No nickname set"يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمةالإسناد المركبمراجعة - عمليات رياضية بسيطةمعاملات المقارنة7أساسيات الإدخال والإخراج
دالة الطباعةتضمين النصوصإدخال ReadLineتحويل الأنواعمراجعة - حتى 120مراجعة - True أو False10الدوال
تعريف دالةالمعاملات والوسائطقيم الإرجاعتسميات الوسائطمراجعة - دالة Sigmaمراجعة - دالة Validationالقيم الافتراضية2المتغيرات
Let مقابل Varتوصيف الأنواع (Type Annotations)الأرقامStringBooleanقواعد التسميةمراجعة - تهيئة المتغيرات5المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالثالمعامل الثلاثي (Ternary Operator)8حاسبة تقسيم الفاتورة
رسالة الترحيبالحصول على المدخلات3القيم الاختيارية (Optionals)
ما هي القيم الاختياريةفك القيم باستخدام If Letاستخدام Guard Letمعامل دمج Nilمراجعة - فك القيم بأمان9حلقات التكرار
حلقة For-Inحلقة Whileحلقة Repeat-WhileBreakContinueمراجعة - المضروب (Factorial)النطاقات في حلقات التكرارالحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)