در دنیای برنامه نویسی، مفهوم null
یکی از رایجترین و در عین حال خطرناکترین مفاهیم است. در بسیاری از زبان های برنامه نویسی، null
به معنای «هیچ» یا «فاقد مقدار» است. اما اگر با آن به درستی برخورد نشود، میتواند باعث بروز خطاهای جدی در برنامه شود.
زبان Dart که پایه اصلی فریم ورک Flutter محسوب میشود، از نسخه 2.12 به بعد قابلیت null safety را معرفی کرد تا جلوی بسیاری از این خطاها گرفته شود. در این مقاله میخواهیم به بررسی مفهوم null، نحوه مدیریت آن در دارت و اهمیت آن در ساخت اپلیکیشنهای فلاتر بپردازیم.
این مقاله بخشی از مسیر آموزش رایگان برنامه نویسی با دارت و فلاتر است و در پایان نیز شما را با یک دوره فوقالعاده به نام دوره فلاتر الماس آشنا خواهیم کرد.
null چیست؟
در زبان های برنامه نویسی، null
نمایانگر این است که یک متغیر یا شیء مقداردهی نشده یا به چیزی اشاره نمیکند. به طور مثال، فرض کنید میخواهید نام کاربر را نمایش دهید، اما هنوز کاربر وارد نشده است. در این صورت مقدار null
نمایانگر آن است که هنوز دادهای وجود ندارد.
در دارت، اگر یک متغیر قابلیت گرفتن مقدار null
را داشته باشد، باید به طور مشخص اجازه این کار را بدهید.
null safety چیست؟
null safety یعنی اطمینان از اینکه متغیرها یا مقادیر مورد استفاده در برنامه تان null
نخواهند بود مگر اینکه شما به صراحت این اجازه را داده باشید.
این قابلیت باعث میشود بسیاری از خطاهای رایج در برنامه نویسی، مخصوصا در اپلیکیشنهای بزرگ، از بین بروند. در دارت، این ویژگی از طریق علامت سؤال ?
و علامت تعجب !
در کنار نوع متغیرها یا اشیاء اعمال میشود.
تفاوت بین متغیرهای nullable و non-nullable
در دارت، اگر نوع یک متغیر بدون علامت سؤال نوشته شود، آن متغیر non-nullable است؛ یعنی نمیتواند null
بگیرد:

اما اگر نوع متغیر را به صورت String?
بنویسید، یعنی میتواند null
نیز باشد:
بررسی null با شرط
برای جلوگیری از خطا در هنگام استفاده از مقادیر nullable، باید قبل از استفاده از آنها، وجود مقدار را بررسی کنید:

این کار باعث میشود هنگام اجرا با خطای معروف null pointer exception روبرو نشوید.
استفاده از عملگر !
برای اجبار به non-null بودن
اگر شما به دارت تضمین دهید که یک متغیر nullable در زمان استفاده، null
نخواهد بود، میتوانید از !
استفاده کنید:

البته این روش فقط در صورتی توصیه میشود که کاملا مطمئن باشید مقدار null
نیست.
استفاده از null-aware operator (??
)
اگر بخواهید برای متغیری که ممکن است null
باشد، یک مقدار پیشفرض در نظر بگیرید، میتوانید از ??
استفاده کنید:

در این مثال اگر userName
مقدار نداشته باشد، “کاربر مهمان” چاپ خواهد شد.
مقداردهی شرطی با ??=
این عملگر زمانی استفاده میشود که فقط در صورت null بودن مقدار، به آن مقدار جدیدی اختصاص دهید:

اگر city
مقدار داشته باشد، خط بالا تغییری ایجاد نمیکند؛ اما اگر مقدار null
باشد، مقدار “تهران” به آن اختصاص داده میشود.
null در لیستها و کلکسیونها
از نسخههای جدید دارت، میتوانید عناصر nullable را در لیست ها نیز تعریف کنید:

همچنین با استفاده از عملگر spread ...
میتوانید لیست های nullable را به لیست های دیگر اضافه کنید:
استفاده از ...?
کمک میکند در صورت null بودن newNames
، خطایی رخ ندهد.
چرا null safety در دارت مهم است؟
قابلیت null safety باعث میشود توسعه دهندگان از خطاهای رایج مربوط به مقادیر تهی جلوگیری کنند. این موضوع در پروژه های فلاتر بسیار اهمیت دارد، چون با استفاده از این قابلیت:
-
برنامه شما امن تر میشود
-
خطاهای زمان اجرا کاهش مییابد
-
روند دیباگ کردن ساده تر خواهد شد
-
توسعه سریع تر و مطمئن تری را تجربه میکنید
اگر میخواهید برنامه نویسی را به صورت حرفهای و بدون خطا یاد بگیرید، حتما باید null safety را به طور کامل درک کنید.
این مفاهیم را در دوره فلاتر الماس یاد میگیرید
اگر این مقاله برایتان مفید بوده و قصد دارید برنامه نویسی با فلاتر را بهصورت حرفهای یاد بگیرید، دوره فلاتر الماس بهترین گزینه برای شماست.
در این دوره، مفاهیم پایه مثل null، توابع، کلاس ها، شرط ها و حلقه ها با جزئیات کامل و مثال های پروژه محور آموزش داده شدهاند. همچنین، در ادامه دوره وارد ساخت اپلیکیشن های واقعی مثل فروشگاه آنلاین، اپ رزرو، اپ خبری و… خواهید شد.
برخی ویژگی های دوره فلاتر الماس:
-
آموزش صفر تا صد دارت و فلاتر
-
پروژه محور بودن دوره
-
پشتیبانی دائمی از شرکت کنندگان
-
تمرین ها و تست های مفهومی
-
دسترسی همیشگی به ویدیوها
اگر هنوز شک دارید، بخشهایی از دوره را بهصورت آموزش رایگان برنامه نویسی منتشر کرده ایم تا با کیفیت آموزش آشنا شوید.
دوره اپلیکیشن نویسی فلاتر الماس (آموزش صفر تا صد برنامه نویسی)
درک درست از null
و قابلیت null safety در زبان دارت، یکی از مهمترین بخش های یادگیری فلاتر است. این موضوع نهتنها باعث امنیت بیشتر برنامه های شما میشود، بلکه توسعه اپلیکیشن را نیز سریع تر و روان تر می کند.
با شرکت در دوره فلاتر الماس، شما تمامی این مفاهیم را در قالب پروژه های واقعی یاد میگیرید و آماده ورود به بازار کار برنامه نویسی میشوید.
📞 شماره تماس: 09050369171 | 01132260635
📱 اینستاگرام: @virgoulsoft
📱 اینستاگرام: @mehrab.bozorgi