مشخصات مقاله
-
700
-
0.0
-
2074
-
0
-
0
آموزش توابع(Function) در Kotlin
توابع(Function) در Kotlin
Kotlin زبانی است که بهصورت ایستا نوع بندی شده است. به همین دلیل توابع نقشی اساسی در آن ایفا میکنند. ما تا حد زیادی با توابع آشنا هستیم. چرا که در مثالهای زیادی از آنها استفاده میکنیم. توابع با استفاده از واژهی کلیدی fun اعلان میشوند. توابع درست مانند زبانهای برنامهنویسی شیءگرای دیگر به یک نوع برگشتی و یک لیست آرگومان اختیاری نیاز دارند.
در مثال زیر تابعی به نام MyFunction تعریف شده است و فراخوانی این تابع از طریق تابع main و دادن برخی از آرگومانها انجام میشود.
fun main(args: Array< String >) {
println(MyFunction("tutorialsPoint.com"))
}
fun MyFunction(x: String): String {
var c:String = "Hey!! Welcome To ---"
return (c+x)
}
نتیجهی کد بالا در زیر نشان داده شده است.
Hey!! Welcome To ---tutorialsPoint.com
اعلان این تابع بهصورت زیر انجام میشود.
fun < nameOfFunction >(< argument >:< argumentType >):< ReturnType >
در ادامه برخی از انواع توابع موجود در Kotlin را مشاهده میکنید.
تابع لامبدا
تابع لامبدا تابع سطح بالایی است که تا حد زیادی کدنویسی را کاهش میدهد و در عین حال اعلان و تعریف تابع را خود به عهده میگیرد. با کمک Kotlin میتوانید تابع لامبدا خود را تعریف کنید. همچنین میتوانید تابع لامبدا خود را اعلان کنید و آن را به یک تابع بدهید.
به مثال زیر توجه کنید.
fun main(args: Array< String >) {
val mylambda: (String)->Unit = {s:String->print(s)}
val v:String = "TutorialsPoint.com"
mylambda(v)
}
در کد بالا تابع لامبدا مخصوص به خود را با نام mylambda ایجاد کردهایم و یک متغیر را از نوع رشتهای به این تابع دادهایم. بهگونهای که این متغیر دارای مقدار TutorialsPoint.com است.
نتیجهی کد بالا در ادامه نشان داده شده است.
TutorialsPoint.com
تابع Inline
در مثال بالا، اصول اولیهی عبارت لامبدای مورداستفاده در برنامههای Kotlin نشان داده شده است. حالا میتوانیم تابع لامبدایی را به تابع دیگری بدهیم تا خروجی مخصوص به خود را دریافت کنیم تا درنهایت تابع فراخواننده به یک تابع inline تبدیل شود.
به مثال زیر توجه کنید.
fun main(args: Array< String >) {
val mylambda: (String)- >Unit = {s:String- >print(s)}
val v:String = "TutorialsPoint.com"
myFun(v,mylambda) //passing lambda as a parameter of another function
}
fun myFun(a:String, action: (String)- >Unit) { //passing lambda
print("Heyyy!!!")
action(a)// call to lambda function
}
کد بالا نتیجهی زیر را در پی دارد. با استفاده از تابع inline یک تابع لامبدا بهصورت یک پارامتر عبور داده شده است. هر تابع دیگری را میتوان با استفاده از عبارت کلیدی inline به یک تابع inline تبدیل کرد.
Heyyy!!!TutorialsPoint.com