Function Expression & Vaargs ใน Kotlin: บทนำ
ใน Kotlin ฟังก์ชันเป็นพลเมืองชั้นหนึ่ง ซึ่งหมายความว่าสามารถกำหนดให้กับตัวแปรและส่งผ่านเป็นอาร์กิวเมนต์ไปยังฟังก์ชันอื่นๆ ได้ นอกจากนี้ Kotlin ยังสนับสนุนการใช้นิพจน์ของฟังก์ชัน ซึ่งเป็นฟังก์ชันที่ไม่ระบุตัวตนที่สามารถกำหนดแบบอินไลน์ได้ คุณลักษณะที่มีประโยชน์อีกอย่างของฟังก์ชัน Kotlin คือ varargs ซึ่งอนุญาตให้ส่งอาร์กิวเมนต์จำนวนตัวแปรไปยังฟังก์ชันได้
ในบทความนี้ เราจะสำรวจการแสดงออกของฟังก์ชันและ varargs ใน Kotlin และแสดงตัวอย่างวิธีการใช้งาน
การแสดงออกของฟังก์ชัน
ใน Kotlin นิพจน์ของฟังก์ชันเป็นฟังก์ชันที่ไม่ระบุตัวตนที่สามารถกำหนดแบบอินไลน์ได้ กำหนดโดยใช้คีย์เวิร์ดfunตามด้วยพารามิเตอร์ของฟังก์ชันในวงเล็บ ทวิภาค และประเภทการคืนค่า เนื้อหาของฟังก์ชันถูกกำหนดโดยใช้นิพจน์แลมบ์ดา
นี่คือตัวอย่างการแสดงออกของฟังก์ชันใน Kotlin:
val sum = fun(a: Int, b: Int): Int = a + b
นิพจน์ฟังก์ชันมีประโยชน์ในสถานการณ์ที่คุณต้องการกำหนดฟังก์ชันแบบอินไลน์และไม่ต้องการกำหนดฟังก์ชันที่มีชื่อ ตัวอย่างเช่น คุณสามารถใช้นิพจน์ของฟังก์ชันเป็นพารามิเตอร์ให้กับฟังก์ชันที่มีลำดับสูงกว่าซึ่งคาดหวังให้ฟังก์ชันเป็นอาร์กิวเมนต์
วาร์ร
ใน Kotlin นั้น varargs อนุญาตให้ฟังก์ชันยอมรับอาร์กิวเมนต์จำนวนตัวแปรได้ คีย์เวิร์ดvarargใช้เพื่อระบุว่าพารามิเตอร์ของฟังก์ชันสามารถรับได้หลายค่า
นี่คือตัวอย่างของฟังก์ชันที่ใช้ varargs:
fun printNumbers(vararg numbers: Int) {
for (number in numbers) {
println(number)
}
}
Vaargs มีประโยชน์ในสถานการณ์ที่คุณต้องการส่งอาร์กิวเมนต์จำนวนตัวแปรไปยังฟังก์ชัน ตัวอย่างเช่น คุณสามารถใช้ varargs เพื่อกำหนดฟังก์ชันที่คำนวณผลรวมของจำนวนค่าตามอำเภอใจ
fun sum(vararg numbers: Int): Int {
var total = 0
for (number in numbers) {
total += number
}
return total
}
บทสรุป:
ในบทความนี้ เราได้สำรวจการใช้ function expressions และ varargs ใน Kotlin นิพจน์ของฟังก์ชันเป็นฟังก์ชันที่ไม่ระบุตัวตนที่สามารถกำหนดแบบอินไลน์ได้ ซึ่งจะมีประโยชน์ในสถานการณ์ที่คุณจำเป็นต้องกำหนดฟังก์ชันแบบอินไลน์และไม่ต้องการกำหนดฟังก์ชันที่มีชื่อ Vaargs อนุญาตให้ฟังก์ชันยอมรับจำนวนตัวแปรของอาร์กิวเมนต์ ซึ่งจะมีประโยชน์ในสถานการณ์ที่คุณจำเป็นต้องส่งอาร์กิวเมนต์จำนวนตัวแปรไปยังฟังก์ชัน
เมื่อใช้คุณสมบัติเหล่านี้ของ Kotlin คุณสามารถเขียนโค้ดที่กระชับและสื่ออารมณ์ได้มากขึ้น ซึ่งง่ายต่อการอ่านและบำรุงรักษา





































![รายการที่เชื่อมโยงคืออะไร? [ส่วนที่ 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)