توی آموزش قبلی کاتلین به بحث گسترش توابع پرداختیم و نشون دادیم که میتونیم عملیات زیر رو انجام بدیم : 

با این تابع : 

حالا ما اگه بخوایم کد اول رو که همون a3 هست رو ساده تر بنویسیم باید چیکار کنیم ؟ یعنی اینجوری : 

توی کد بالا و خط اول ما plus رو بدون نقطه و بدون پرانتز دوم واسه a2 استفاده کردیم ( که کدمون اینجوری هم قشنگ تر میشه ) . واسه اینکه ما از تابع plus به شکل بالا استفاده کنیم ، فقط کافیه کلمه کلید infix رو قبل تابع به کار ببریم . یعنی اینجوری : 

حالا اگه ما بخوایم کد اولمون رو ساده تر بنویسیم چی ؟ یعنی با یه علامت + مختصر و مفید . یعنی اینجوری ؟

به صورت پیشفرض اگه ما کد بالا رو بنویسیم به علامت + گیر میده و ارور میده . علامت + که پلاس تلفظ میشه و ما هم یه تابع تعریف کرده بودیم به اسم plus . کافیه ما کلمه کلیدی operator رو قبل از تابع plus بنویسیم تا کاتلین بفهمه که تابع plus ما یه عملگر هست که و چون plus به معنی جمع کردن هست ، دیگه به علامت + ارور نمیده . یعنی کد نهایی تابع ما این میشه : 

دقت کنید که واسه عملگر ها که جمع و تفریق و ضرب و غیره هست نمیشه هر اسم دلخواه انتخاب کرد . مثلا ما نمیتونیم اسم تابعمون رو بذاریم negar بعدشم کلمه کلیدی operator رو قبلش بذاریم و انتظار داشته باشیم که دیگه به + ارور نده . واسه اینکه بدونید توی کاتلین عملگر ها چه اسمی دارن این صفحه رو ببینید کمکتون میکنه : 

رفتن به صفحه Operator Overloading

و در اصل این قسمتش مهمه :

Expression Translated to
a + b a.plus(b)
a - b a.minus(b)
a * b a.times(b)
a / b a.div(b)
a % b a.rem(b)a.mod(b) (deprecated)
a..b a.rangeTo(b)

یعنی علامت + اسمش میشه plus . علامت – اسمش میشه minus . علامت * اسمش میشه times . علامت / اسمش میشه div و … 

تا آموزش های بعدی 🙂

آموزش Infix و Operator Overloading در کاتلین

مجتبی صابری


همه عشقم برنامه نویسی هست | t.me/kotlin9


پیمایش نوشته


پاسخ دهید

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