منوهای نصب در پنل مدیریت

توابع infix در کاتلین

آموزش توابع infix در کاتلین

مقدمه

در این قسمت از دوره آموزش جامع زبان کاتلین به بررسی توابع infix در کاتلین میپردازیم. در بخش قبل به معرفی و آموزش توابع و نحوه تعریف و کار با آنها پرداختیم. در این بخش نوع خاصی از توابع را معرفی میکنیم که به آنها توابع infix گفته می شود

معرفی توابع infix در کاتلین

آیا تا به حال به عملگرهایی مانند until توجه کرده اید و از خود پرسیده اید  که این عملگر چطور کار میکند؟
کد زیر یک نمونه از کاربرد این عملگر می باشد.

5 until 6

اگر با نگه داشتن کلید ctrl روی این تابع کلیک کنید، تابع زیر را مشاهده میکنید.

public infix fun Int.until(to: Int): IntRange {
    if (to <= Int.MIN_VALUE) return IntRange.EMPTY
    return this .. (to - 1).toInt()
}

مشاهده میکنید که قبل از fun از کلیدواژه infix استفاده شده است.
تابع until را میتوانیم به دو صورت استفاده کنیم که در کد زیر هر دو حالت را مشاهده می کنید.

2 until 10
2.until(10)

خودمان نیز میتوانیم توابعی به این صورت تعریف کنیم.

برای این کار، تابع ما باید سه شرط داشته باشد:

  • این تابع باید عضو یک کلاس باشد یا تابع اکستنشن باشد (ذر مورد توابع اکستنشن در آینده صحبت میکنیم)
  • تابع ما باید دقیقا یک پارامتر ورودی داشته باشد
  • برای تعریف تابع باید کلیدواژه infix را به کار ببریم
infix fun Int.gcd(s: Int): Int {
    return if (s == 0) this
    else s gcd this % s
}

میتوانیم به صورت زیر در تابع main آن را صدا بزنیم.

println(30 gcd 24)

مثالی دیگر: تابع زیر با کمک نام و سن فرد سال تولد وی را نمایش میدهد.

infix fun String.has(age: Int): String {
    val year = Calendar.getInstance().get(Calendar.YEAR)
    return "$this born in ${year - age}"
}

کاربرد : print("Samira" has 25)

کار با توابع infix بسیار ساده می باشد. با این حال میتوان در مورد آن نکات بیشتری بیان کرد اما پیش از آن لازم است تا به بخش کلاس ها در کاتلین برسیم.

2 پاسخ به "توابع infix در کاتلین"

  1. سلام دست شما درد نکنه بخاطر این آموزش های فوق العاده و مخصوصا اینکه رایگان هم هستن. منتظر قسمت های بعدی آموزش هستیم

ارسال یک پیام

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

Hetbo.net 2016 - 2020