آموزش زبان کاتلین – درس ۲۹ (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 ها برای اضافه کردن قابلیت‌های جدید استفاده کنید. توصیه می‌کنم برای کسب اطلاعات بیشتر، به لینک‌های زیر مراجعه نمایید:

بخوانید  آموزش زبان کاتلین – درس 15 (توابع infix)

دیدگاه شما :

بدون دیدگاه

    هنوز دیدگاهی ارسال نشده است.

عضویت در خبرنامه

عضویت در خبرنامه برای عضویت در خبرنامه پیامکی، عدد 1 را به شماره 30005563 پیامک کنید.