آموزش زبان کاتلین – درس ۲۹ (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 در کاتلین

در صورتی که می‌خواهید کاتلین را به پروژه‌های فعلی خود اضافه کنید نیازی به اصلاح کامل پروژه نیست. کافی است از Extension Function ها برای اضافه کردن قابلیت‌های جدید استفاده کنید. توصیه می‌کنم برای کسب اطلاعات بیشتر، به لینک‌های زیر مراجعه نمایید:

بخوانید  برنامه‌نویسی پیشرفته اندروید با زبان کاتلین - بخش چهارم

سید ایوب کوکبی

نویسنده و مترجم...

0 دیدگاه

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