امـیـــــرحســـــین آریا
امـیـــــرحســـــین آریا
خواندن ۲ دقیقه·۴ سال پیش

بوت کمپ Kotlin برای برنامه نویسان اندروید درس دو: درباره پوچ شوندگی بیشتر بدانید



4. درباره پوچ شوندگی بیاموزید

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

گام 1: در مورد پوچ شوندگی بیاموزید

به طور پیش فرض، متغیرها نمی‌توانند پوچ null باشند.

1. یک Int اعلام کنید و یک null به آن اختصاص دهید.

var rocks: Int = null ⇒ error: null can not be a value of a non-null type Int

2. از عملگر علامت سوال ؟، پس از نوع استفاده کنید تا نشان دهید که متغیر می‌تواند پوچ باشد. یک ?Int اعلام کنید و یک null به آن اختصاص دهید.

var marbles: Int? = null

وقتی نوع داده‌های پیچیده مثل لیست دارید:

  • می‌توانید به عناصر لیست اجازه دهید تا پوچ باشند.
  • شما می‌توانید به لیست اجازه دهید تا پوچ باشد، اما اگر لیست پوچ نباشد عناصر آن نمی‌توانند پوچ باشند.
  • شما می‌توانید اجازه دهید لیست و عناصر آن هر دو پوچ باشند.

لیست‌ها و سایر نو‌ع‌داده‌هایِ پیچیده در تکلیف بعدی پوشش داده می‌شود.


گام 2: درباره عملگرهای ? و :? بیاموزید

شما می‌توانید با عملگر ? پوچ بودن یک متغیر را امتحان کنید، که زحمت نوشتن تعداد زیادی حکم if / else را کم می‌کند.

1. مقداری کد به روش طولانـــی برای امتحان پوچ نبودن متغیر fishFoodTreats بنویسید. بعد این متغیر را کاهش دهید.

var fishFoodTreats = 6 if (fishFoodTreats != null) { fishFoodTreats = fishFoodTreats.dec() }

2. حالا به روش کاتلین برای نوشتن این کد با استفاده از عملگر ? توجه کنید.

var fishFoodTreats = 6 fishFoodTreats = fishFoodTreats?.dec()

3. شما همچنین می‌توانید امتحان پوچ بودن را با عملگر :? رشته کنید. به این مثال توجه کنید:

fishFoodTreats = fishFoodTreats?.dec() ?: 0

این یک مختصر نویسی است برای "اگر fishFoodTreats پوچ نیست، کاهش بده و استفاده کن: در غیر این‌صورت از مقدار بعد از :? استفاده کن، که صفر است".

اگر fishFoodTreats پوچ باشد، سنجش متوقف می‎شود، و متد ()dec صدا زده نمی‌شود.

عملگر :? گاهی با نام "عملگر الویس" شناخته می‌شود، چون مثل یک لبخند با مدل موی پفی است، مانند آرایش موهای الویس پرسلی. درباره عملگر الویس در مستندات کاتلین بیشتر بخوانید.


یک نکته درباره اشاره‌گر پوچ

اگر شما واقعا عاشق استثنای اشاره‌گرپوچ (Null Pointer Exceptions) هستید، کاتلین به شما کمک می‌کند. عملگر اعلان غیر پوچ، !! (double-bang)، هر مقداری را به یک نوع غیر پوچ تبدیل می‌کند و اگر مقدار پوچ null باشد یک استثنا ارسال می‌کند .

val len = s!!.length // throws NullPointerException if s is null
در برنامه نویسی به طور عامیانه به علامت تعجب "بنگ" (bang) گفته می‌شود، پس عملگر اعلان غیرپوچ گاهی "دابل بنگ" یا "بنگ بنگ" خوانده می‌شود.
به‌طور کلی استفاده از عملگر دابل بنگ (!!) ایده خوبی نیست. به همین خاطر سازندگان زبان می‌خواهند به جای یک علامت تعجب از دو علامت تعجب استفاده کنید. با این حال، گاهی شما به دابل بنگ نیاز دارید تا با کد جاوای ارث‌بری شده (legacy code) ارتباط برقرار کنید.

بخش قبل | فهرست درس | بخش بعد

بوت کمپ کاتلین برای برنامه نویسان اندروید درس دوآموزش کتاب برنامه نویسی کاتلیندوره آموزش برنامه نویسی به زبان کاتلین برای ساخت اپلیکیشن اندوریدآموزش برنامه نویسی کد android
توسعه دهنده وب و نرم افزار - طراح تجربه کاربر و رابط کاربری | لینک بوت کمپ کاتلین https://vrgl.ir/69hcw
شاید از این پست‌ها خوشتان بیاید