آموزش زبان کاتلین – درس ۲۹ (Extension Function)
فرض کنید نیازمند گسترش قابلیتهای یک کلاس هستید. این کار در اغلب زبانهای برنامهنویسی با استفاده از ارثبری کلاسها و پیروی از تعدادی الگوی طراحی صورت میگیرد. اما در کاتلین به کمک توابع Extension میتوان قابلیتهای یک کلاس را بدون دستکاری آن افزایش داد. Extension Function عضوی از کلاس است که خارج از آن تعریف میشود. به عنوان مثال تابعی میخواهید که رشته جدیدی بدون کاراکترهای ابتدایی و ثانویه به شما تحویل دهد. چنین تابعی در کلاس String وجود ندارد اما به کمک Extension Function ها میتوانید این قابلیت را به کلاس String اضافه کنید.
مثال: حذف کاراکتر اول و دوم رشته به کمک Extension Function در کاتلین
fun String.removeFirstLastChar(): String = this.substring(1, this.length - 1) fun main(args: Array<String>) { val myString= "Hello Everyone" val result = myString.removeFirstLastChar() println("First character is: $result") }
خروجی:
First character is: ello Everyon
اینجا تابع ()removeFirstChar را به کلاس String اضافه کردهایم. نام کلاس Receiver Type است که در مثال ما String است. کلیدواژه this نیز به Receiver Object اشاره دارد.
در صورتی که میخواهید کاتلین را به پروژههای فعلی خود اضافه کنید نیازی به اصلاح کامل پروژه نیست. کافی است از Extension Function ها برای اضافه کردن قابلیتهای جدید استفاده کنید. توصیه میکنم برای کسب اطلاعات بیشتر، به لینکهای زیر مراجعه نمایید:
0 دیدگاه
نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند *