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

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

مقدمه

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

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

در حالت ساده برای تعریف توابع در کاتلین از کلید واژه fun استفاده میکنیم.
هر تابع شامل یک قطعه کد می باشد که با صدا زدن آن تابع، اجرا می شود.
تا کنکو با برخی توابع پیشفرض موجود در کاتلین مانند توابع println و readLine آشنا شدید.
علاوه بر توابع پیشفرض موجود در کاتلین و سایر کتابخانه های مورد استفاده، میتوانیم خودمان نیز توابع مورد نیازمان را به برنامه اضافه کنیم.

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

فرض کنید بخواهیم تابعی بسازیم که تشخیص بدهید یک عدد اول می باشد یا خیر.
چنین تابعی پاسخی دو حالته (بله یا خیر) دارد بنابراین باید تابع ما مقداری از نوع بولین یعنی true یا false برگرداند.
تابع ما یک عدد از نوع int به عنوان پارامتر دریافت میکنید و آن را بررسی میکند.

fun isPrime(number: Int): Boolean {
    if (number < 2) return false
    val sq = sqrt(number.toDouble()).toInt()
    for(i in 2..sq) if (number % i == 0) return false
    return true
}

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

println(isPrime(37))

همچنین با کد زیر میتوان اعداد اول بین 1 تا 100 را پیدا کرد و نمایش داد.

val x = ArrayList<Int>()
for (i in 1..100){
    if (isPrime(i)) x.add(i)
}
print(x)

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

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

تا این قسمت یاد گرفتیم که هر تابع از 5 بخش تشکیل شده است:
کلیدواژه fun
نام تابع
پارامترهای تابع
نوع بازگشتی تابع
بدنه تابع

البته در بخش های پیشرفته تر مربوط به توابع خواهید دید که توابع میتوانند ساختارهای دیگری نیز داشته باشند.

fun sayHello(name: String, time: String) {
    println("Hello $name, Good $time")
}

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

sayHello("Hosein", "morning")

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

fun sayHello(name: String, time: String) = println("Hello $name, Good $time")

تابع بالا همان تابع قبل می باشد با این تفاوت که آن را بدون آکولاد نوشتیم.

fun isOdd(num: Int) = num % 2 == 1

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

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

تمرین 1)

تابعی بنویسید که یک رشته را دریافت کرده و معکوس آن را برگرداند.
مثلا Hello دریافت کرده و olleH را برگرداند

تمرین 2)

تابعی بنویسید که بررسی کند آیا رشته ورودی palindrome می باشد یا خیر (یعنی از دو طرف به یک صورت نوشته شود). مثلا رشته hello پلیندروم نیست اما comemoc پلیندروم می باشد.

تمرین 3)

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

مثلا لیست اعداد 5,8,20,61,87,2 را دریافت کرده و لیست اعداد 8,20,2 را برگرداند

تمرین 4)

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

0 پاسخ به "آموزش توابع در کاتلین"

ارسال یک پیام

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

Hetbo.net 2016 - 2020