در زبان برنامه نویسی دارت، مفهوم null یکی از مفاهیم اساسی است که برای مدیریت مقادیر خالی یا نامعتبر در برنامه ها استفاده می شود. در این مقاله به توضیح مفهوم null در دارت و کاربردهای آن خواهیم پرداخت.
Null به معنای خالی یا نامعتبر است و برای نشان دادن عدم وجود یک مقدار صحیح در یک متغیر استفاده می شود. به عبارت دیگر، وقتی متغیری null است، به این معنی است که هیچ مقداری به آن اختصاص داده نشده است.
یکی از کاربردهای اصلی null در دارت، بررسی مقادیر متغیرها می باشد. با استفاده از null می توانیم بررسی کنیم که آیا یک متغیر دارای مقدار است یا خیر. به عنوان مثال، اگر یک متغیری null باشد، می توانیم بررسی کنیم که آیا مقدار آن null است یا نه. این عملکرد می تواند در برنامه هایی که باید با مقادیر خالی یا نامعتبر مواجه شوند، مفید باشد.
همچنین، null به عنوان یک مقدار پیش فرض برای متغیرها نیز استفاده می شود. در برخی مواقع، ممکن است بخواهیم یک متغیر را با یک مقدار خالی مقداردهی کنیم. در این صورت می توانیم از null به عنوان مقدار پیش فرض استفاده کنیم تا بعداً مقدار صحیحی به آن اختصاص دهیم.
مفهوم نال سیفتی(Null Safety)
نال سیفتی (Null Safety) در دارت، قابلیتی است که به شما کمک میکند تا از اشکالات ناشی از مقادیر نال در برنامههایتان جلوگیری کنید. مقادیر نال، مقادیری هستند که هیچ مقداری به آنها اختصاص داده نشده است.
مشکلات نال:
قبل از نال سیفتی (Null Safety)، مقادیر نال میتوانستند در هر جایی از برنامه شما ظاهر شوند و منجر به خطاهای غیرمنتظره و رفتار غیرقابل پیشبینی شوند. این امر اشکالزدایی و نگهداری کد را دشوار میکرد.
مزایای نال سیفتی (Null Safety)
- کاهش خطا: نال سیفتی (Null Safety) به طور خودکار بسیاری از خطاهای ناشی از مقادیر نال را در زمان کامپایل شناسایی و از آنها جلوگیری میکند.
- کد قابل اعتمادتر: نال سیفتی (Null Safety) به شما کمک میکند تا کد قابل اعتمادتر و قویتری بنویسید که کمتر در معرض خطا و خرابی است.
- خوانایی بهتر: نال سیفتی (Null Safety) کد شما را خواناتر و قابل فهمتر میکند، زیرا به وضوح مشخص میکند که کدام متغیرها میتوانند مقادیر نال داشته باشند.
نحوه کار نال سیفتی (Null Safety)
نال سیفتی (Null Safety) با استفاده از سیستم نوعدهی برای ردیابی اینکه کدام متغیرها میتوانند مقادیر نال داشته باشند، کار میکند.
- انواع نالپذیر: متغیرهایی که میتوانند مقادیر نال داشته باشند را با علامت سوال (?) در انتهای نوع داده آنها مشخص میکنید. مثال: String? name;
- غیرقابلدسترسی به مقادیر نال: اگر سعی کنید به یک متغیر نالپذیر بدون بررسی نال بودن آن دسترسی داشته باشید، کامپایلر خطا میدهد.
- اپراتورهای جدید: نال سیفتی (Null Safety) اپراتورهای جدیدی مانند ! و ?. را برای بررسی نال بودن و دسترسی ایمن به مقادیر نالپذیر معرفی میکند.
مثال:
فرض کنید میخواهید نام کاربری را از کاربر دریافت کنید و آن را در متغیری به نام username ذخیره کنید:
قبل از نال سیفتی (Null Safety):
String username = stdin.readLineSync()!;
// ...
print("نام کاربری شما: $username");
در این کد، متغیر username بدون بررسی نال بودن مقدار ورودی کاربر، به آن مقداردهی میشود. این امر میتواند منجر به خطا شود اگر کاربر هیچ ورودی وارد نکند.
با نال سیفتی (Null Safety)
String? username = stdin.readLineSync();
if (username != null) {
// ...
print("نام کاربری شما: $username");
} else {
print("هیچ نام کاربری وارد نشده است");
}
در این کد، متغیر username به عنوان null-nullable تعریف شده است و قبل از استفاده از آن، با استفاده از اپراتور != null بررسی میشود. اگر username نال باشد، پیام “هیچ نام کاربری وارد نشده است” چاپ میشود.
نکات:
- نال سیفتی (Null Safety) به طور پیش فرض در پروژههای جدید دارت فعال است.
- میتوانید برای پروژههای موجود خود نیز نال سیفتی (Null Safety) را فعال کنید، اما ممکن است نیاز به انجام برخی تغییرات در کدتان داشته باشید.
- اگر از نال سیفتی (Null Safety) استفاده میکنید، حتماً از اپراتورهای جدید و تکنیکهای بررسی نال برای جلوگیری از خطاها استفاده کنید.