توابع در کاتلین | تابع ها در آموزش کاتلین (kotlin)

توابع در کاتلین چند نوع هستند.؟

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

توابع در کاتلین دو نوع می باشد توابع بازگشتی و توابع غیره بازگشتی که ما در ادامه مطلب هر دو را با ذکر مثال هایی برای شما توضیح داده ایم.

توابع غیره بازگشتی در برنامه نویسی kotlin

 غیره بازگشتی به توابعی گفته می شود که هیچ مقداری برای ما بازگشت ندهد این یعنی دارای کلمه کلیدی return نباشد. مقداری خروجی آن Void می باشد .یعنی هیچ مقداری برگشت داده نمی شود .  بزارید برای درک بهتر شما مثالی های رو با هم بررسی کنیم تا به صورت کامل این توابع رو قورت بدیم .اول از همه بزار بهتون بگم توابع چجوری ساخته می شوند ؟ برای این کار ابتدا کلمه کلیدی fun رو مینویسیم و بعد از آن اسم تابع رو می نویسیم به مانند مثال زیر :

fun testFun(){
    print("testfun")
}

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

fun testFun(){
     print("testfun")
 }
 testFun()
testfun

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

fun testFun(name : String , lastname : String ,age : Int ){
     print("name: $name \n lastname: $lastname \n age : $age ")
 }
 testFun("farshid","habibi",25)
name: farshid 
 lastname: habibi 
 age : 25

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

fun testFun(name : String , lastname : String ,age : Int ){
     print("name: $name \n lastname: $lastname \n age : $age ")
 }
 testFun(age = 20,lastname = "faraji",name = "ali")
name: ali 
 lastname: faraji 
 age : 20

در مثال بالا مشاهد می کنید که ما age را ابتدا وارد کردیم . ولی برای این کارمون ابتدا اسمشو نوشتیم بعد مقدار را دادیم.

 

توابع بازگشتی در برنامه نویسی kotlin

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

fun testFun(name: String, lastname: String, age: Int) : String {
     val myitem = "name: $name  lastname: $lastname  age : $age "
     return myitem
 }
 print(testFun("farshid","habibi",25))
name: farshid  lastname: habibi  age : 25

 

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

fun testFun(num1: Int,num2: Int) : Int {
     return if(num1>num2) num1 else num2
 }
 print(testFun(15,23))
23

ما در کد بالا دو عدد را برای تابع خود می فرستیم . و مقایسه می کنیم که کدام بزرگتر می باشد . البته ما می تونستیم در کد خود با مقدار if ابتدا اعداد خود را بررسی کنیم و عدد مورد نظر خودمون را تو یک متغیر بریزیم . و اون رو برگردونیم .

fun testFun(num1: Int, num2: Int) : Int {
     
     if(num1 > num2){
        return num1
     }else  {
         return num2
     }
     
 }
 print(testFun(15,23))
23

استفاده از دستور ()Pair در توابع (Functions) بازگشتی در برنامه نویسی کاتلین

دستور ()Pair چیست؟ این سوالی هست که از خودتون می پرسید؟ بزارید خیلی آسون بهتون بگم که این دستور چی هست . شاید برای همه ما پیش بیاد که در طول پروژه خود نیاز داشت باشم که دو مقدار برای ما برگشت داده شود . یعنی مثلا دو عدد برای تابع خود بفرستید و می خواید که برای شما کوچکتر و بزرگتر رو بر گردونه حالا شاید پیش خودتون میگید اول اونی که بزرگتر هستش رو پیدا می کنیم بعدش اون یکی عدد کوچک تر هستش . بله درسته ولی این مثال کوچکترین استفاده از این دستور ()Pair هستش و خیلی موقع ها ما نیاز حیاتی به این تابع داریم . در مثال زیر طرز کار با دستور ()Pair را برای شما توضیح می دهیم.

fun testFun(num1: Int, num2: Int) : Pair<Int,Int> {
    
    if(num1 > num2){
       return Pair(num1,num2)
    }else {
        return Pair(num2,num1)
    }
    
}
testFun(15,23)

در کد بالا همانطور که مشاهده می کنید . ما به وسیله دستور ()Pair دو مقدار را برگشت دادیم و اون مقادیر برگشتی رو هم جلوی تابع مشخص کردیم . ولی نکته ی دیگر این است . که ما دو مقدار را برگشت می دهیم . چگونه آن را دریافت کنیم و برای این کار دو راه وجود دارد . که من هر دوی آن را برای شما توضیح می دهم . تا در کد نویسی خودتون هر کدوم را دوست دارید امتحان کنید.

یکی از این روش ها این است که ما توسط متد first , Second  اولین و یا دومین مقدار را برداریم . مانند کد زیر :

fun testFun(num1: Int, num2: Int) : Pair<Int,Int> {
 
     if(num1 > num2){
         return Pair(num1,num2)
     }else {
         return Pair(num2,num1)
     }
 
 }
 
 print(testFun(15,23).first.toString()+"\n")
 print(testFun(15,23).second)
23
15

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

fun testFun(num1: Int, num2: Int) : Pair<Int,Int> {
     if(num1 > num2){
         return Pair(num1,num2)
     }else {
         return Pair(num2,num1)
     }
 }
 
 val (max,min)=testFun(15,12)
         print("max= $max \n min=$min")
max= 15 
 min=12

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

موفق باشید .

 

برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]
اشتراک‌گذاری

فرشید حبیبی هستم . برنامه نویس موبایل، سئو و وردپرس همچنین علاقه مند به تولید محتوا در زمینه برنامه نویسی و تکنولوژی های روز دنیا.

دیدگاهتان را بنویسید

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