۷ نکته کاربردی کاتلین برای برنامه نویسان اندروید | به زبان ساده


زبان برنامهنویسی کاتلین برای سادهتر و سریعتر ساختن توسعه اندروید معرفی شده است. پس از آن که گوگل اعلام کرد کاتلین زبان رسمی توسعه اندروید است، این زبان به تدریج در حال گرفتن جای جاوا است و امروزه به گزینه نخست توسعهدهندگان اندروید تبدیل شده است. در این مقاله به بررسی 7 نکته کاربردی کاتلین برای توسعهدهندگان اندروید خواهیم پرداخت.
استفاده از کاتلین برای توسعهدهندگان جاوا، کار آسانی است، زیرا این دو زبان وجوه اشتراک زیادی دارند. اما همین نکته ممکن است موجب شود که افراد، جوانب منحصر به فرد و یا خاص زبان کاتلین را نادیده بگیرند. به این ترتیب کدی که در کاتلین مینویسند، شبیه کد جاوا خواهد بود. خوشبختانه امکان استفاده از روشهای کاتلینی برای نوشتن کدهای با حجم کمتر در اندروید وجود دارد. در ادامه در این خصوص توضیحهایی ارائه کردهایم.
از تابع let برای بررسی مشخصههای تهیپذیر (Nullable) استفاده کنید
به طور معمول برنامهنویسان از ساختار کنترلی if not null برای بررسی نوع یک مشخصه، پیش از اجرای یک عملیات استفاده میکنند. استفاده از تابع بسط let در کاتلین به شما کمک میکند که از پیچیدگی شاخههای شرطی این منطق اجتناب کنید.
تابع let در کاتلین یک تابع دامنهدار است که مشخصههای اعلان شده در درونش نمیتوانند در خارج از آن استفاده شوند. برای زنجیرهسازی دستهای از مشخصههای تهیپذیر میتوانید از let–های تودرتو استفاده کنید. به مثال زیر توجه کنید:
استفاده از عملگر Elvis کاتلین (?:) موجب میشود که بتوانیم مقادیر پیشفرض برای مشخصههای تهیپذیر ارائه کنیم. برای نمونه در کد فوق، میتوانیم تابع را به صورت doSomething(a?: 0) فراخوانی کنیم و به این ترتیب از این که a یک مقدار پیشفرض دارد، مطمئن شویم.
تولید لیستهای کاتلین با تنها یک خط کد
اگر میخواهید یک لیست با مقادیر پیشفرض بسازید، کار سرراستی در کاتلین محسوب میشود. کد زیر یک آرایه صحیح به طول 10 ایجاد میکند که هر آیتم آن با عدد 1 مقداردهی شده است.
IntArray(10) { 1 }.asList()
با این که این روش آسان و سریع است، اما شاید کنجکاو باشید که برای ساخت لیستی با عناصر متفاوت چطور میتوان عمل کرد. یک روش کلاسیک برای انجام این کار استفاده از حلقههای for است. اما با بهرهگیری از قدرت کاتلین میتوانیم این کار را نیز تنها در یک خط کد انجام دهیم:
استفاده از تابعهای require یا check برای خروج زودهنگام از گزاره شرطی
تابع require اقدام به اعتبارسنجی آرگومان ارسالی میکند و در صورت نادرست بودن یک استثنای IllegalArgumentException ایجاد میکند.
از سوی دیگر، تابع check در زمانی که حالت شیء به صورت false باشد یک استثنای IllegalStateException ایجاد میکند.
هر دوی این تابعها در زمانی که میخواهیم در کدبیس کاتلین در پروژه اندروید، زودتر از موعد از یک گزاره شرطی خارج شویم به کار میآیند.
استفاده از تابعهای apply و with برای کاهش کد تکراری
Apply و with دو تابع دامنهدار مهم هستند که به حذف ارجاع صریح به یک شیء در زمان تعیین مشخصههای آن کمک میکنند. به این ترتیب هر دوی این تابعها کمک میکنند که یک شیء را پیش از بازگشت دادن، تبدیل کنید.
تابع apply روی مقداردهی شیء فراخوانی میشود، در حالی که در تابع with لازم است که شیء به صورت یک آرگومان ارسال شود. با بهرهگیری از این دو تابع میتوانیم حجم کد تکراری را کاهش داده و کدبیس تمیزتر و منسجمتری داشته باشیم.
عملگرهای partition و groupBy افراز لیست را تسهیل میکنند
عملگر partition امکان افراز لیست را به جفتهای لیست فرعی میدهد که در آن زیرلیست اول شامل عناصری است که شرط خاصی را داشته باشند و آیتمهای دیگر هم در زیرلیست دوم قرار میگیرند.
از سوی دیگر عملگر groupBy یک map از زیرلیستها از یک جفت کلید-مقدار بازگشت میدهد. با فراخوانی مشخصه مقدار روی groupBy یک لیست متشکل از لیستها به دست میآید. مثال زیر کاربرد هر یک از این دو را نمایش میدهد.
تعویض دو مشخصه با تنها یک خط کد
تعویض کردن دو متغیر از جمله نخستین سؤالات برنامهنویسی است که هر توسعهدهندهای با آن مواجه میشود. به طور سنتی ما برای تعویض دو متغیر، یک متغیر موقت تعریف میکنیم. اما یک روش برای دور زدن این شرایط و کاهش کد به دو خط وجود دارد و آن استفاده از a = a-b و b = b-a است. اما این کد را نیز میتوان بهتر کرد.
با بهرهگیری از عبارت زیر در کاتلین، تعویض کردن دو مشخصه را میتوان در تنها یک خط کد اجرا کرد:
a = b.also { b = a }
در حالتهای ساده به جای عبارت لامبدا از ارجاع متد استفاده کنید
با این که استفاده از عبارتهای لامبدا در اغلب موارد گزینه مناسبی محسوب میشود، اما در پارهای موارد زمانی که لازم است به مشخصه یک شیء دسترسی داشته باشید، استفاده از ارجاعهای متد،گزینه بهتری است.
ارجاعهای عضو با علامت :: مشخص میشوند. کلاس یا شیء در سمت چپ نوشته میشود و مشخصه سمت راست را فراخوانی میکند. در ادامه یک سناریوی نمونه را با استفاده از ارجاعهای عضو به جای عبارت لامبدا معرفی کردهایم که موجب کوتاهتر شدن کد و افزایش خوانایی آن شده ست.
سخن پایانی
به این ترتیب به پایان این مقاله با موضوع معرفی 7 نکته کاربردی کاتلین برای توسعهدهندگان اندروید میرسیم. امیدواریم نکات و ترفندهای معرفی شده در این مقاله برای شما مفید بوده باشند.