0Pricing
Kotlin Academy · บทเรียน

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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. Lambda คืออะไร ไวยากรณ์และชนิด
  2. ส่ง Lambda ให้ฟังก์ชัน
  3. it: พารามิเตอร์โดยนัย
  4. filter, map และ find บนคอลเลกชัน
← กลับไปที่ Kotlin Academy