آموزش افزونه نویسی (Extension Function) در برنامه نویسی کاتلین

آموزش افزونه نویسی (Extension Function) در کاتلین | آموزش مقدماتی کاتلین | درس 14 ام

با آمزش دیگر از کدایت در خدمت شما عزیزان هستیم. افزونه نویسی (Extension Function) در کاتلین به شما امکان می‌دهد تا توابع جدیدی را به کلاس‌های موجود اضافه کنید، بدون اینکه نیاز به ارث‌بری از آن کلاس یا تغییر کد آن داشته باشید. بعضی مواقع توابعی فقط در یک جا مورد استفاده می‌شود و تعریف کردن آن در کلاس سربار اضافی است و استفاده زیادی از آن نمی‌شود. در این مواقع است که ما با افزونه نویسی یک تابع برای آن در خارج از کلاس به صورت Extension Function تعریف می‌کنیم.

این کار می‌تواند برای موارد زیر مفید باشد:

  • اضافه کردن توابعی که به طور مکرر با یک نوع داده خاص استفاده می‌شوند.
  • اضافه کردن توابعی که به دلیل خصوصی بودن، در دسترس شما نیستند.
  • بهبود خوانایی کد با جدا کردن توابع مربوط به یک نوع داده خاص.

مطالب مرتبط: آموزش مقدماتی کاتلین به صورت جامع و به صورت صفر تا صد

افزونه نویسی (Extension Function) چه مزایایی دارد :

  • خوانایی کد را افزایش می‌دهد: با جدا کردن توابع مربوط به یک نوع داده خاص، کد شما خواناتر و قابل فهم‌تر می‌شود.
  • قابلیت استفاده مجدد کد را افزایش می‌دهد: شما می‌توانید توابع افزونه را در پروژه‌های مختلف به اشتراک بگذارید.
  • نگهداری کد را آسان‌تر می‌کند: با اضافه کردن توابع جدید به کلاس‌های موجود، می‌توانید از ایجاد کلاس‌های جدید و پیچیده جلوگیری کنید.

نکات مهم در مورد افزونه نویسی:

  • توابع افزونه نمی‌توانند به اعضای خصوصی کلاس دسترسی داشته باشند.
  • توابع افزونه نمی‌توانند توابع سازنده یا توابع ثابت را اضافه کنند.
  • توابع افزونه می‌توانند توابع دیگر را با استفاده از کلمه کلیدی super فراخوانی کنند.

مطالب مرتبط : نحوه استفاده از ساختار داده TreeMap در کاتلین | درس دوازدهم | آموزش مقدماتی کاتلین

برای فهم بهتر این موضوع ما یک مثال ساده در قالب کدنویسی برای شما آماده کردیم . فرض کنید ما یک کلاس User داریم که اطلاعات کاربر اعم از نام ، نام خانوادگی ، ایمیل و شماره تماس در آن قرار دارد من در کلاس User هیچ تابع  و سازنده  دیگری ندارم  کد کلاس User را در قسمت پایین مشاهده کنید .

کلاس User برای تعریف اطلاعات اشخاص با استفاده از افزونه نویسی

کلاس User

کد های کلاس User در قسمت بالا مشاهده می‌کنید. حالا ما قرار است با استفاده از  افزونه نویسی (Extension Function) دوتا تابع setValues , getValues در فایل Main خود تعریف کنیم و با کمک این دوتا تابع یکسری عملیات برای کلاس User انجام دهیم .

استفاده از افزونه نویسی (Extension Function) در کلاس Main

ساخت توابعی با افزونه نویسی

افزونه نویسی تابع getValues

افزونه نویسی تابع getValues

در کد بالا ، ما با استفاده از افزونه نویسی (Extension Function) دو تابع setValues و getValues تعریف کردیم و مقدار دهی می‌کنیم .  این دوتابع در داخل کلاس User قرار ندارد و ما بسته به نیازی که اینجا داشتیم تعریف کردیم .

خروجی کد بالا :

خرویجی کد نویسی با Extension Function

خروجی کد بالا

همانطور که مشاهده می‌کنید ما با توابعی که ساختیم کلاس User را مقداردهی کردیم و در آخر نیز خروجی را چاپ کردیم.

 

کد های استفاده شده در آموزش:

class User {

    lateinit var name: String
    lateinit var lastName: String
    lateinit var email: String
    lateinit var phone: String


}
fun main() {

    val user = User()
    user.setValues("Ali", "faraji",
        "faraji.ali75@gmail.com", "0910-123-2526")
    user.getValues()
}

fun User.setValues(_name: String, _lastName: String, _email: String, _phone: String) {

    name = _name
    lastName = _lastName
    email = _email
    phone = _phone
}


fun User.getValues() {
    println("Name:$name \n LastName:$lastName \n Email:$email\n Phone:$phone")
}

مطالب پیشنهادی : آموزش جاوا اسکریپت به صورت مقدماتی تا پیشرفته

برای امتیاز به این نوشته کلیک کنید!
[کل: 3 میانگین: 5]
تصویر فرشید حبیبی

فرشید حبیبی

من فرشید حبیبی، توسعه‌دهنده نرم‌افزار با تمرکز بر برنامه‌نویسی اندروید هستم. در کنار فعالیت حرفه‌ای خود، وب‌سایت آموزشی «کدایت» را مدیریت می‌کنم و در آن به تولید محتوای آموزشی در حوزه برنامه‌نویسی اندروید می‌پردازم. هدف من، اشتراک دانش و کمک به برنامه‌نویسان برای یادگیری و پیشرفت در مسیر حرفه‌ای‌شان است.

مقالات آموزشگاه کدایت

جدیدترین مقالات و آموزش‌های تکمیلی برنامه‌نویسی را در وبلاگ کدایت بخوانید؛ مرجعی برای یادگیری مباحث پیشرفته کاتلین، توسعه اندروید، وب و فناوری‌های نوین.​

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

آموزشگاه کدایت

پلتفرم یادگیری مهارت‌های مهندسی نرم‌افزار

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

اطلاعات تماس

تمامی حقوق این وب‌سایت متعلق به مجموعه کدایت است.

طراحی سایت : ایپک