اختیاری ها (Swift Optionals)
«اختیاری (Optional)» یعنی متغیر می تواند مقدار داشته باشد یا nil. این ویژگی مثل جا خالی دفتر است؛ گاهی پر است، گاهی خالی. بنابراین، باید «بازکردن (Unwrap)» انجام دهیم تا امن بخوانیم.
اختیاری چیست و چرا مهم است؟
اختیاری با ? تعریف می شود. سپس با «ادغام با مقدار پیش فرض (Nil-Coalescing)» یعنی ?? یا با «بایند کردن (Binding)» مثل if let مقدار را امن می گیریم.
var nickname: String? = nil;
print(nickname ?? "(none)");
nickname = "Ace";
if let name = nickname {
print(name);
}
نکته: با ?? سریع مقدار جایگزین بده. مثل نمره جایگزین.
استفاده از guard let برای خروج زودهنگام
guard let در ابتدای تابع بررسی می کند. اگر مقدار نبود، سریع برگرد؛ کد پایین ساده تر می شود.
func greet(_ input: String?) {
guard let name = input else {
print("Missing name");
return;
}
print("Hello, \(name)");
}
greet(nil);
greet("Swift");
هشدار: بازکردن اجباری با ! خطرناک است؛ فقط وقتی مطمئن هستی.
مسیر مطالعه مرتبط
اگر تازه ای، اول توابع را مرور کن. سپس برای نوع های شمارشی، Enums را بخوان. همچنین این صفحه «اختیاری ها سوئیفت» مرجع سریع توست.
تمرین های مرحله ای اختیاری ها سوئیفت
- یک متغیر اختیاری بساز و با
??چاپ کن. - با
if letمقدار را بگیر و استفاده کن. - یک تابع بنویس و در آن
guard letبه کار ببر. - سناریوهای مدرسه بساز؛ مثل غیبت یعنی
nil.
نکته: همیشه قبلِ استفاده، اختیاری را امن باز کن.
جمع بندی سریع
- اختیاری یعنی مقدار یا
nil. ??مقدار پیش فرض می دهد.if letبازکردن امن است.guard letخروج زودهنگام می دهد.!را فقط با اطمینان استفاده کن.