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