چه زمانی از Operator Overloading در کاتلین استفاده می‌شود؟ |آموزش مقدماتی کاتلین | درس شانزدهم

Operator Overloading یا اضافه بارگذاری عملگر، قابلیتی در زبان کاتلین است که به شما اجازه می‌دهد. تا رفتار عملگرهای موجود را برای کلاس‌ها و نوع‌های داده‌ی خودتان تغییر دهید. به عبارت دیگر، می‌توانید با استفاده از این قابلیت، معنای جدیدی به عملگرهای رایج مانند +، -، * و == برای کلاس‌های خودتان اختصاص دهید.  ما در جلسه قبل مبحث توابع میانوندی (Infix Functions) در کاتلین برای شما عزیزان آموزش دادیم Operator Overloading یا اضافه بارگذاری عملگر شبیه Infix Functions  ها هستند. و باعث کوتاه شدن کد ها می شوند . اضافه بارگذاری عملگر ها در زبان برنامه نویسی C  وجود داشت و الان نیز در زبان برنامه نویسی کاتلین نیز استفاده می‌کنند.

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

فرض کنید ما می‌خواهیم یکسری عملیات های ریاضی انجام دهیم ، در واقع ما با کمک Operator Overloading این عملیات ها را با علامت های ریاضی کنترل می‌کنیم به طور مثال :

Operator overloading برای جمع +

مثالی ساده از Operator Overloading

توضیحات کد بالا :

متد operator fun String.plus دو وردی از جنس String دریافت می‌کند . یکی this و دیگری هم other می‌باشد و یک مقدار برگشتی از جنس String و از جمع این دوتا رشته برای ما برمی‌گرداند . 

 

مثالی از جمع دو عدد صحیح:

 

عملگر + Operator Overloading شده است

Operator Overloading برای +

توضیحات کد بالا :

در کد بالا همانطور که مشاهده می‌کنید ما یک data کلاس داریم به اسم IntPair که این کلاس دوتا ورودی یا همان ویژگی با نام های first و second دریافت می‌کند. که هر دو ویژگی از جنس عدد صحیح یا Int می‌باشند.

و اما متد operator fun IntPair.plus(other: IntPair): IntPair این متد عملگر + یا جمع را برای کلاس ما Operator Overloading یا اضافه بارگذاری عملگر می‌کند و همانطور که مشاهده می‌کنید دو تا شی از جنس data class موجود (IntPair) به عنوان ورودی دریافت می‌کند . this که اشاره به شی کنونی می‌باشد و other نیز اشاره به شی دیگری دارد . در واقع ما دوتا شی با مقادیر ورودی first  و second را به عنوان ورودی به متد خود می‌دهیم و یک مقدار برگشی از جنس خود کلاس یعنی IntPair دریافت می‌کنیم که مقادیر آن جمع دو تا شی ما است.

خروجی کد:

خروجی کد های بالا پس از اعمال اضافه عملگر +

خروجی کد بالا

نکته ای که از مثال بالا باید دریافت کنیم این است که در این مثال، Operator Overloading به ما این امکان می‌دهد تا عمل جمع را برای کلاس IntPair پیاده‌سازی کنیم. به این ترتیب، می‌توانیم از عملگر + برای جمع کردن دو شیء IntPair به طور مستقیم استفاده کنیم.

مطالب پیشنهادی : نحوی مدیریت استثناها با try-catch در کاتلین | آموزش مقدماتی کاتلین | درس سیزدهم

مزایای استفاده از Operator Overloading:

  • خوانایی کد: با استفاده از Operator Overloading می‌توانید کد خود را خواناتر و قابل فهم‌تر کنید. به عنوان مثال، به جای استفاده از متدهای جداگانه برای جمع و تفریق دو عدد مختلط، می‌توانید از عملگرهای + و - به طور مستقیم استفاده کنید.
  • کاهش حجم کد: اضافه بارگذاری عملگر می‌تواند به شما کمک کند تا کد خود را کوتاه‌تر و فشرده‌تر کنید.
  • سازگاری با API های موجود: با استفاده از Operator Overloading می‌توانید کلاس‌های خودتان را با API های موجود که از عملگرهای خاصی استفاده می‌کنند، سازگار کنید.

برای مشاهده موارد بیشتر و استفاده های گوناگون از این Operator  ها میتوانید به سایت کاتلین در لینک زیر مراجعه کنید که همه عملگر ها برای Overloading را به طور مفصل برای شما آورده است .

 منابع :  kotlinlang

برای امتیاز به این نوشته کلیک کنید!
[کل: 1 میانگین: 5]
اشتراک‌گذاری

من فرشید حبیبی هستم، یک برنامه نویس موبایل با بیش از 5 سال تجربه. من علاقه زیادی به برنامه نویسی دارم و در این زمینه به طور مداوم در حال یادگیری و پیشرفت هستم. در حال حاضر، به عنوان یک برنامه نویس اندروید در یک شرکت معتبر مشغول به کار هستم و همچنین یک وبسایت آموزشی به نام کدایت را اداره می کنم. در کدایت، به تولید محتوای آموزشی در مورد برنامه نویسی اندروید و وب می پردازیم. هدف من از ایجاد این وبسایت، کمک به سایر برنامه نویسان اندرویدی برای یادگیری و پیشرفت در این زمینه است.

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

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