Lambda คืออะไร ไวยากรณ์และชนิด
ทำความเข้าใจนิพจน์ lambda ทั้งไวยากรณ์ ชนิดพารามิเตอร์ และค่าที่ส่งกลับ
Lambda คืออะไร ไวยากรณ์และชนิด เป็นบทเรียน Kotlin Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kotlin Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน
แลมบ์ดาในประโยคเดียว
แลมบ์ดา คือฟังก์ชันนิรนาม หรือค่าฟังก์ชันที่คุณสามารถเก็บไว้ในตัวแปร ส่งต่อให้ฟังก์ชันอื่น หรือส่งกลับได้
ไวยากรณ์แลมบ์ดาพื้นฐาน
แลมบ์ดาเขียนอยู่ภายในวงเล็บปีกกา โดยพารามิเตอร์อยู่ทางซ้ายของ -> และส่วนเนื้อหาอยู่ทางขวา
fun main() {
val greet = { name: String -> "Hello, $name!" }
println(greet("World"))
}แลมบ์ดาที่ไม่มีพารามิเตอร์
ละพารามิเตอร์ทั้งหมดได้หากไม่มีพารามิเตอร์ ส่วนการแสดงออกสุดท้ายจะเป็นค่าที่ส่งกลับ
fun main() {
val random = { (1..6).random() }
println(random()) // some number 1..6
}แลมบ์ดาที่มีหลายพารามิเตอร์
คั่นพารามิเตอร์ด้วยจุลภาค คุณสามารถระบุชนิดข้อมูลหรืออาศัยการอนุมานจากบริบทได้
fun main() {
val sum = { a: Int, b: Int -> a + b }
println(sum(3, 4)) // 7
}การอนุมานชนิดข้อมูลของแลมบ์ดา
เมื่อกำหนดแลมบ์ดาให้กับตัวแปรที่มีชนิดข้อมูล ชนิดข้อมูลของพารามิเตอร์สามารถละไว้ได้
fun main() {
val multiply: (Int, Int) -> Int = { a, b -> a * b }
println(multiply(6, 7)) // 42
}คำอธิบายชนิดข้อมูลของแลมบ์ดา
ชนิดข้อมูล (Int, Int) -> Int อธิบายฟังก์ชันที่รับค่า Int สองค่าและส่งกลับค่า Int นี่คือวิธีระบุชนิดข้อมูลของแลมบ์ดา
fun main() {
val op: (Int) -> Int = { x -> x * x }
println(op(5)) // 25
}แลมบ์ดาที่ส่งกลับ Unit
หากแลมบ์ดาไม่มีค่าที่เป็นประโยชน์ให้ส่งกลับ ชนิดข้อมูลของมันคือ () -> Unit โดย Unit เป็นสิ่งที่เทียบเท่ากับ void ใน Kotlin
fun main() {
val log: (String) -> Unit = { msg -> println("[LOG] $msg") }
log("Hello")
log("World")
}การเก็บแลมบ์ดาในรายการ
แลมบ์ดาเป็นค่า คุณจึงรวบรวมไว้และเรียกใช้ภายหลังได้
fun main() {
val operations: List<(Int) -> Int> = listOf({ it + 1 }, { it * 2 }, { it - 3 })
for (op in operations) println(op(10))
// 11, 20, 7
}การส่งกลับแลมบ์ดา
ฟังก์ชันสามารถส่งกลับแลมบ์ดาที่เก็บสภาพแวดล้อมของตัวเองไว้ในคลอเชอร์ได้
fun makeAdder(n: Int): (Int) -> Int = { x -> x + n }
fun main() {
val add5 = makeAdder(5)
println(add5(10)) // 15
println(add5(20)) // 25
}แลมบ์ดาที่จับตัวแปรไว้
แลมบ์ดาสามารถอ่านและในกรณีของ var สามารถแก้ไขตัวแปรจากขอบเขตที่ครอบอยู่ได้
fun main() {
var counter = 0
val increment = { counter++ }
increment(); increment(); increment()
println(counter) // 3
}แลมบ์ดาเทียบกับฟังก์ชันนิรนาม
Kotlin ยังมีฟังก์ชันนิรนามรูปแบบ fun(x: Int): Int = x * 2 ด้วย ฟังก์ชันเหล่านี้ทำงานคล้ายแลมบ์ดา แต่รองรับชนิดข้อมูลที่ส่งกลับอย่างชัดเจนและ return ที่มีป้ายกำกับ
fun main() {
val square = fun(x: Int): Int { return x * x }
println(square(8)) // 64
}ตรวจสอบความเข้าใจ
ชนิดข้อมูล (Int) -> String อธิบายสิ่งใด
สรุปทบทวน
แลมบ์ดาคือฟังก์ชันนิรนามที่เขียนในรูปแบบ { params -> body } ชนิดข้อมูลของมันคือ (ParamTypes) -> ReturnType แลมบ์ดาสามารถจัดเก็บ ส่งต่อ ส่งกลับ และจับตัวแปรจากขอบเขตที่ครอบอยู่ได้
คำถามที่พบบ่อย
บทเรียน “Lambda คืออะไร ไวยากรณ์และชนิด” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “Lambda คืออะไร ไวยากรณ์และชนิด” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kotlin Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “Lambda คืออะไร ไวยากรณ์และชนิด”
ทำความเข้าใจนิพจน์ lambda ทั้งไวยากรณ์ ชนิดพารามิเตอร์ และค่าที่ส่งกลับ คุณปฏิบัติ Kotlin Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kotlin Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kotlin Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “Lambda คืออะไร ไวยากรณ์และชนิด” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Kotlin Academy นี้ได้ไหม
ได้ บทเรียน Kotlin Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- Lambda คืออะไร ไวยากรณ์และชนิด
- ส่ง Lambda ให้ฟังก์ชัน
- it: พารามิเตอร์โดยนัย
- filter, map และ find บนคอลเลกชัน