Kotlin - ฟังก์ชั่น

Kotlin เป็นภาษาที่พิมพ์แบบคงที่ดังนั้นฟังก์ชันจึงมีบทบาทอย่างมาก เราค่อนข้างคุ้นเคยกับฟังก์ชันเนื่องจากเราใช้ฟังก์ชันตลอดทั้งตัวอย่าง มีการประกาศฟังก์ชันด้วยคีย์เวิร์ด“ fun” เช่นเดียวกับ OOP อื่น ๆ ยังต้องการประเภทการส่งคืนและรายการอาร์กิวเมนต์ตัวเลือก

ในตัวอย่างต่อไปนี้เรากำลังกำหนดฟังก์ชันที่เรียกว่า MyFunction และจากฟังก์ชันหลักเรากำลังเรียกใช้ฟังก์ชันนี้และส่งผ่านอาร์กิวเมนต์บางส่วน

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

ฟังก์ชัน Lambda

แลมด้าเป็นฟังก์ชั่นระดับสูงที่ลดรหัสจานหม้อไอน้ำลงอย่างมากในขณะที่ประกาศฟังก์ชันและกำหนดเหมือนกัน Kotlin ช่วยให้คุณกำหนดแลมด้าของคุณเอง ใน Kotlin คุณสามารถประกาศแลมด้าและส่งแลมด้านั้นไปยังฟังก์ชันได้

ลองดูตัวอย่างต่อไปนี้

fun main(args: Array<String>) {
   val mylambda :(String)->Unit  = {s:String->print(s)}
   val v:String = "TutorialsPoint.com"
   mylambda(v)
}

ในโค้ดด้านบนเราได้สร้างแลมด้าของเราเองที่เรียกว่า "mylambda" และเราได้ส่งตัวแปรหนึ่งไปยังแลมบ์ดานี้ซึ่งเป็นประเภท String และมีค่า "TutorialsPoint.com"

โค้ดด้านบนจะให้ผลลัพธ์ต่อไปนี้ในเบราว์เซอร์

TutorialsPoint.com

ฟังก์ชันอินไลน์

ตัวอย่างข้างต้นแสดงพื้นฐานของนิพจน์แลมด้าที่เราสามารถใช้ได้ในแอปพลิเคชัน Kotlin ตอนนี้เราสามารถส่งแลมด้าไปยังฟังก์ชันอื่นเพื่อรับเอาต์พุตของเราซึ่งทำให้ฟังก์ชันการโทรเป็นฟังก์ชันอินไลน์

ลองดูตัวอย่างต่อไปนี้

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
}

โค้ดด้านบนจะให้ผลลัพธ์ต่อไปนี้ในเบราว์เซอร์ การใช้ฟังก์ชันอินไลน์เราได้ส่งแลมด้าเป็นพารามิเตอร์ ฟังก์ชันอื่น ๆ สามารถทำให้เป็นฟังก์ชันอินไลน์ได้โดยใช้คีย์เวิร์ด "อินไลน์"

Heyyy!!!TutorialsPoint.com