توابع در برنامه نویسی کاتلین

4 سال پیش
توابع در برنامه نویسی کاتلین

توابع در برنامه نویسی کاتلین

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

در برنامه نویسی، تابع یک گروه از عبارات مرتبط است که یک کار خاص را انجام می دهد.

از توابع برای تقسیم یک برنامه بزرگ به قطعات کوچکتر و مدولار استفاده می شود. به عنوان مثال، شما باید دایره ای را بر اساس ورودی کاربر ایجاد و رنگ آمیزی کنید. برای حل این مشکل می توانید دو عملکرد ایجاد کنید:

  • تابع () createCircle
  • تابع () colorCircle

تقسیم یک برنامه پیچیده به اجزای کوچکتر، برنامه ما را سازمان یافته و قابل کنترل می کند. علاوه بر این، از تکرار جلوگیری می کند و کد را قابل استفاده مجدد می کند.

انواع توابع در برنامه نویسی کاتلین

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

  • توابع کتابخانه استاندارد کاتلین
  • توابع تعریف شده توسط کاربر

 

توابع کتابخانه استاندارد کاتلین

توابع استاندارد کتابخانه کاتلین، توابع داخلی آماده و پیشفرض هیستند که برای راحتی استفاده در دسترس هستند. مثلا،

  • print () یک تابع کتابخانه است که پیام را به استریم خروجی استاندارد (مانیتور) چاپ می کند.
  • sqrt () ریشه مربع یک عدد را برمی گرداند (مقدار دو برابر)
fun main(args: Array<String>) {

    var number = 5.5
    print("Result = ${Math.sqrt(number)}")
}

 

هنگامی که برنامه را اجرا می کنید، خروجی کد به شکل زیر است:

Result = 2.345207879911715

 

توابع تعریف شده توسط کاربر در کاتلین

همانطور که گفته شد، خودتان می توانید توابع ایجاد کنید. به این توابع توابع تعریف شده توسط کاربر گفته می شود.

 

چگونه یک تابع تعریف شده توسط کاربر در کاتلین ایجاد کنیم؟

قبل از اینکه بتوانید از توابع (اصطلاحا آن ها را فراخوانی کنید) استفاده کنید، باید آن را تعریف کنید.

 نحوه تعریف یک تابع در کاتلین:

fun callMe() {
    // function body
}

 

برای تعریف یک تابع در کوتلین، از کلیدواژه fun استفاده می شود. سپس نام تابع (شناسه) می آید. در اینجا ، نام تابع callMe است.

در برنامه فوق، پرانتز () خالی است. یعنی این تابع هیچ آرگومانی را قبول نمی کند. بعداً در این مقاله با آرگومان ها آشنا خواهید شد.

کدهای داخل آکولاد {} بدنه تابع است.

 

چگونه یک تابع فراخوانی می شود؟

برای اجرای کدها در داخل بدنه تابع، باید تابع را فراخوانی کنید. نحوه انجام این کار به صورت زیر است:

()callme

 

این عبارت عملکرد ()callMe را که قبلاً اعلام شده، فراخوانی می کند.

توابع در برنامه نویسی کاتلین

مثال: یک برنامه ساده با تابع در کاتلین

fun callMe() {
    println("Printing from callMe() function.")
    println("This is cool (still printing from inside).")
}

fun main(args: Array<String>) {
    callMe()
    println("Printing outside from callMe() function.")
}

 

هنگامی که برنامه را اجرا می کنید، خروجی کد به شکل زیر است:

Printing from callMe() function.
This is cool (still printing from inside).
Printing outside from callMe() function.

 

تابع () callMe در کد بالا هیچ آرگومانی را قبول نمی کند.همچنین، تابع هیچ مقداری را بازگشت نمی دهد.

بیایید یک مثال دیگر از توابع بزنیم. این تابع آرگومان ها را می پذیرد و همچنین مقدار را برگشت می دهد.

 

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

fun addNumbers(n1: Double, n2: Double): Int {
    val sum = n1 + n2
    val sumInteger = sum.toInt()
    return sumInteger
}

fun main(args: Array<String>) {
    val number1 = 12.2
    val number2 = 3.4
    val result: Int

    result = addNumbers(number1, number2)
    println("result = $result")
}

 

هنگامی که برنامه را اجرا می کنید، خروجی کد به شکل زیر است:

result = 15

 

 

توابع با آرگومان و مقدار بازگشتی چگونه کار می کنند؟

دو آرگومان number1 و number2 از نوع Double در هنگام فراخوانی عملکرد به تابع ()addNumbers  منتقل می شوند. این آرگومان ها را آرگومان های واقعی می نامند.

(result = addNumbers(number1, number2

 

پارامترهای n1 و n2 آرگومان های ارسالی را می پذیرد. این آرگومان ها را آرگومان های صوری (یا پارامتر) می نامند.

توابع در برنامه نویسی کاتلین

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

توجه داشته باشید که، نوع داده آرگومان ها واقعی و صوری باید مطابقت داشته باشد، به عنوان مثال، نوع داده اولین آرگومان واقعی باید با نوع اولین آرگومان صوری مطابقت داشته باشد. به همین ترتیب، نوع آرگومان دوم واقعی باید با نوع آرگومان صوری دوم و غیره مطابقت داشته باشد.

return sumInteger

 

در اینجا return sumInteger یک گزاره بازگشتی است. این کد تابع () addNumbers را خاتمه می دهد و کنترل برنامه به تابع ()main می رود.

در برنامه، sumInteger از تابع ()addNumbers  بازگشت می یابد. این مقدار به نتیجه متغیر اختصاص داده می شود.

توابع در برنامه نویسی کاتلین

نکته:

  • هم متغیر sumInteger و هم result از نوع Int هستند.
  • نوع بازگشتی تابع در تعریف تابع مشخص شده است.
// return type is Int
fun addNumbers(n1: Double, n2: Double): Int {
    ... .. ...
}

 

اگر تابع هیچ مقداری را بازگشت نمی دهد، نوع بازگشت آن unit است. اگر نوع بازگشت Unit باشد ، تعیین نوع بازگشت در تعریف تابع اختیاری است.

 

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

fun main(args: Array<String>) {
    println(getName("John", "Doe"))
}

fun getName(firstName: String, lastName: String): String = "$firstName $lastName"

 

هنگامی که برنامه را اجرا می کنید، خروجی کد به شکل زیر است:

John Doe

 

در اینجا، تابع ()getName دو آرگومان String می گیرد و یک String را بازگشت می دهد.

اگر تابع یک عبارت واحد را بازگشت دهد، اجباری برای استفاده از آکولاد {} در بدنه تابع  پس از = نمی باشد.

انتخاب صریحاً نوع بازگشت در این حالت اختیاری است زیرا نوع کامپایلر می تواند توسط کامپایلر استنباط شود. در مثال بالا می توانید تغییرات زیر را ایجاد کنید؛

fun getName(firstName: String, lastName: String): String = "$firstName $lastName"

و

fun getName(firstName: String, lastName: String) = "$firstName $lastName"

 

منبع.

 

لیست جلسات قبل آموزش برنامه نویسی کاتلین

  1. معرفی کاتلین،  Kotlin Hello World – اولین برنامه کاتلین
  2. انواع متغیرهای پایه در کاتلین
  3. عملگرهای برنامه نویسی کاتلین
  4. تبدیل نوع در برنامه نویسی کاتلین
  5. عبارت ها، گزاره ها و بلوک ها در برنامه نویسی کاتلین
  6. کامنت ها در برنامه نویسی کاتلین
  7. ورودی / خروجی پایه در برنامه نویسی کاتلین
  8. عبارت if در برنامه نویسی کاتلین
  9. عبارت when در برنامه نویسی کاتلین
  10. حلقه های while و do … while در برنامه نویسی کاتلین
  11. حلقه for در برنامه نویسی کاتلین
  12. عبارت break در برنامه نویسی کاتلین
  13. عبارت continue در برنامه نویسی کاتلین
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه