null safety چیست؟ null safety در کاتلین

null safety چیست؟ null safety در کاتلین

null safety چیست پرسشی است که قطعا هرکسی را ترغیب به کسب اطلاعات در مورد آن کرده یا خواهد کرد، چرا که این ویژگی عالی و کاربردی یک ویژگی تقریبا مدرنی است که می تواند به برنامه نویس ها کمک کارسازی کند تا با مشکلاتی که بخاطر نال بودن ایجاد میشود مواجه نشوند؛ در ادامه این مقاله از آکادمی نوری به مفاهیم مرتبط با این موضوع، مثلا null safety در کاتلین و… می پردازیم، با ما همراه باشید.

null safety در کاتلین چیست

null safety چیست

null safety در کاتلین یک ویژگی بسیار خوب و یک نقطه قوت برای این است که اگر همچنان به سمت این زبان نیامده اید، بتوانید فکر کنید که آیا ارزشش را دارد که آن را یاد بگیرید یا خیر.

بیاید قبل از این که به این موضوع که معنی null safety چیه بپردازیم، از مفهوم null شروع کنیم تا درک بهتری از کلیت ماجرا داشته باشید.

مفهوم null

مستقیم بریم سر اصل مطلب، یعنی پاسخ null safety چیست، بطور کلی در برنامه نویسی، انواع داده ها زمانی که تعریف می شوند بصورت غیرتهی یا بقول خودمان null هستند.

یکی از بنیادی ترین مفاهیم برنامه نویسی، چه در کاتلین، چه در هر زبان دیگری همین مفهوم null است که این مورد از اهمیت بسزایی برخوردار است تا برنامه نویسان این مفهوم را نیز دریابند.

بهتر است که برنامه نویس سعی کند مواردی مثل اینکه اصلا null یعنی چی، پیاده سازی null و نحوه استفاده از null را یاد بگیرد و اطلاعات کافی درباره هر کدام از این موارد داشته باشد.

اگر شما درباره ی این موارد چیزی ندانید، قطعا با پرسش هایی قبیل معنای null چیست؟ و.. مواجه می شوید، نگران پاسخ نباشید که در این مقاله می توانید براحتی اطلاعات کافی را کسب کنید.

اگر در زمینه null اطلاعات کمی دارید پیشنهاد میکنیم تا توضیحات مربوط به مفهوم null را بخوانید تا بتوانید زمانی که به سراغ مطالب مربوط به null safety در کاتلین می رویم بهتر آن را درک کنید.

زمانی که یک متغیر تعریف می شود ودر عین حال مقدار دهی هم شود، درواقع یک نود از حافظه رم به آن متغیر تخصیص داده می شود، یعنی اینکه در حافظه موقت سیستم، انتساب صورت میگیرد.

اما زمانی که یک متغیر بصورت null یا پوچ تعریف می شود، یعنی مقداری در خودش نداره.

اگر نیاز باشه که یک مثال در این زمینه داشته باشیم، بیاید دو ظرف در نظر بگیرید، این ظرف ها متغیر های ما هستند که یکی از اون ها خالی هست و دیگری هم از آب پر شده.

ظرفی که خالی هست در واقع مثالی هست برای متغیری که تعریف شده اما به صورت null یا پوچ و ظرف دیگر که پر هست مثالی برای متغیری هست که تعریف شده و هم مقدار در خودش داره.

 

تا به این بخش از مقاله آکادمی نوری به اینکه null یعنی چه پرداختیم و توضیحات مختصری ارائه دادیم، حالا قصد داریم که با بحث اصلی این مقاله که مربوط به پرسش null safety چیست است مقاله را ادامه دهیم.

null safety در کاتلین چیست

null safety چیست

برای اینکه بتوانید از این ویژگی استفاده کنید، فرقی نمی کند که بخواهید آن را برای متغیر استفاده کنید، یا برای آبجکت و یا حتی برای یک تابع، شما می توانید از این ویژگی در همه این موارد استفاده کنید و از فواید آن نیز بهره ببرید.

زمانی که بتوانیم مقدار null به چیزی تخصیص دهیم، درواقع از ویژگی null safety استفاده کرده ایم، اما بنظر شما null safety در کاتلین همانند جاوا عمل می کند؟

اگر بخواهم در این باره به شما پاسخی بدهم باید بگویم خیر.

در زبان کاتلین میتوانیم بطور کامل و برای همه نوع مقادیر از null safety بهره ببریم، اما در زبان جاوا به شکل دیگری است.

اگر قصد دارید معماری MVI کاتلین را آموزش ببینید از مقاله معماری MVI آکادمی نوری دیدن کنید.

در جاوا یکسری دیتا تایپ داریم که امکان اینکه بتوان برای آن ها هم از این ویژگی بهره برد وجود ندارد.

این نوع دیتا تایپ همان پریمیتیو تایپ جاوا (primitive type) است که شامل دیتا تایپ های boolean , byte , char , short , int , long , float و double می شود.

برای این دیتا تایپ ها باید بطور مستقیم یک مقدار اختصاص بدهیم و امکان اختصاص دادن مقدار نال هم وجود ندارد، اما دیتا تایپ های دیگر به غیر از این موارد این امکان را دارند، مثل ابجکت.

اما برای اینکه بتونیم از این ویژگی استفاده کنیم باید چیکار کنیم؟ ما با کمک این ویژگی درواقع داریم میگیم که اگر مقدار null دریافت شد مشکلی وجود نداره و برنامه به کار خودش ادامه بده، بگذارید با مثال توضیح بدهیم.

val a : String? = "Kotlin"
"val b : String = "Nouri Academy

برای مثال در دو خط کد بالا، خط اول با تعریف متغیر و علامت سوال ؟ بعد از دیتا تایپ تعریف کردیم که اگر این متغیر مقداری برابر با null داشت هم مشکلی ندارد و اپ به کارش ادامه دهد، اگر نداشت هم که خب طبیعی است که نباید مشکلی وجود داشته باشد.

اما در خط دوم متغیر نمی تواند که مقدار null در خودش ذخیره کند و فقط باید مقداری از نوع دیتا تایپی که تعریف شده است داشته باشد.

یک مورد جالب درمورد null safety در کاتلین این است که می توانیم برای چیزی که مقدار null دریافت میکند با ؟ شرط بذاریم.

val a : String? = "Nouri"
println(a?.plus("Academy")) //NouriAcademy

در قطعه کد بالا چون متغیر a را با کمک ؟ طوری تعریف کرده ایم که به زبان ساده اگر null باشد هم ایرادی ندارد، در بخش بعدی توانستیم طوری متغیر را چاپ کنیم که اگر متغیر a مقداری در خودش داشت و null نبود رشته ی Academy را به مقدار متغیر a اضافه کن؛ در واقع در این شرایط ؟ تبدیل به یک شرط برای نال نبودن مقدار می شود.

اگر مقدار متغیر a نال شود، چون شرط گذاشته ایم، چاپی صورت نمیگیرد و رشته ی null بر می گرداند.

val a : String? = null
println(a?.plus("Academy")) //null

null safety چیست – یکی از مواردی که با کمک آن می توانیم مبحث null safe بودن کاتلین را پیش ببریم استفاده از ؟ بود، یک مورد دیگر هم هست که استفاده از !! یا همان دوتا علامت تعجب است.

هرجایی که این علامت قرار داده شود، بمنظور این است که به null بودن آن اهمیتی ندهید و برنامه کارش را ادامه دهد.

در کل دو علامتی که تا به اینجای مقاله درباره شان توضیح داده ایم مفهوم null safety کاتلین را برایمان به ارمغان می آورند.

این که ما در کاتلین می توانیم با استفاده از علامت ؟ null safe را داشته باشیم و این که با یک استراتژی عالی نال ها کنترل میشوند که باعث می شود مشکلی بوجود نیاید و درصد کرش اپ پایین تر بیاید، چیزی است که کاتلین را نسبت به جاوا که این ویژگی را ندارد متمایز می کند؛ به آخر مقاله ی null safety چیست رسیدیم.

 

سعی کردیم مطالب مختصر و مفیدی از null safety چیست و مفهوم null و کاربرد null safety در کاتلین برایتان فراهم کنیم تا ذره ای از سردرگمی‌ ای که از بابت null safe بودن زبان وجود دارد را کم کنیم، سپس از این که تا به اینجای مقاله null safety چیست با من همراه بودید❤️.

دیدگاه‌ها ۰
ارسال دیدگاه جدید