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

let และ run

ดำเนินการกับออบเจ็กต์

let และ run เป็นบทเรียน Kotlin Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kotlin Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน

ฟังก์ชันกำหนดขอบเขตคืออะไร

Kotlin มีฟังก์ชันกำหนดขอบเขตห้าฟังก์ชัน ได้แก่ let, run, with, apply และ also ฟังก์ชันเหล่านี้ช่วยให้คุณเรียกใช้บล็อกโค้ดกับออบเจ็กต์ภายในขอบเขตชั่วคราวได้

  • คุณอ้างถึงออบเจ็กต์ได้ด้วย it หรือ this
  • บล็อกจะส่งคืนออบเจ็กต์นั้นเองหรือผลลัพธ์ของแลมบ์ดา

ในบทเรียนนี้เราจะเน้นที่ let และ run

ฟังก์ชัน let

let จะเรียกใช้บล็อกที่มีอ็อบเจ็กต์พร้อมใช้งานในชื่อ it และคืนค่า ผลลัพธ์ของแลมบ์ดา

ฟังก์ชันนี้เหมาะอย่างยิ่งสำหรับการเรียกใช้โค้ดเมื่อค่าไม่เป็นค่าว่างเท่านั้น และสำหรับแปลงค่าให้เป็นสิ่งอื่น

fun main() {
    val name = "Alice"
    val length = name.let {
        println("Name is $it")
        it.length
    }
    println("Length: $length")
}

let กับค่าที่อาจไม่มีค่า

การใช้งาน let ที่พบบ่อยที่สุดคือใช้ร่วมกับโอเปอเรเตอร์เรียกแบบปลอดภัย ?. บล็อกจะทำงานเมื่อค่าไม่เป็นค่าว่างเท่านั้น

fun main() {
    val name: String? = "Bob"
    name?.let {
        println("Hello, $it")
    }
    val empty: String? = null
    empty?.let {
        println("This never prints")
    }
    println("Done")
}

การเปลี่ยนชื่อ it ใน let

ภายใน let คุณสามารถเปลี่ยนชื่อ it ให้สื่อความหมายมากขึ้นได้ด้วยการประกาศพารามิเตอร์ของแลมบ์ดา

fun main() {
    val price = 100
    price.let { amount ->
        println("The amount is $amount")
    }
}

ฟังก์ชัน run

run จะเรียกใช้บล็อกที่มีอ็อบเจ็กต์พร้อมใช้งานในชื่อ this และคืนค่า ผลลัพธ์ของแลมบ์ดา

ใช้ฟังก์ชันนี้เมื่อคุณต้องการเข้าถึงสมาชิกโดยตรงโดยไม่ต้องมีคำนำหน้า

fun main() {
    val text = "Kotlin"
    val upper = text.run {
        println("Length is $length")
        uppercase()
    }
    println(upper)
}

run โดยไม่มีตัวรับ

คุณสามารถเรียกใช้ run ได้โดยไม่มีอ็อบเจ็กต์ ฟังก์ชันนี้จะเรียกใช้บล็อกและคืนค่าผลลัพธ์ของบล็อกนั้น เหมาะสำหรับจัดกลุ่มคำสั่งและคำนวณค่า

fun main() {
    val result = run {
        val a = 5
        val b = 10
        a + b
    }
    println("Result: $result")
}

it กับ this

ความแตกต่างสำคัญระหว่าง let กับ run อยู่ที่วิธีอ้างอิงอ็อบเจ็กต์:

  • let ใช้ it ซึ่งเป็นพารามิเตอร์
  • run ใช้ this ซึ่งเป็นตัวรับและมักไม่ต้องระบุอย่างชัดเจน

ทั้งสองฟังก์ชันคืนค่าผลลัพธ์ของนิพจน์สุดท้ายในบล็อก

fun main() {
    val word = "hi"
    val a = word.let { it.length }
    val b = word.run { length }
    println("$a $b")
}

การเรียกต่อกันด้วย let

เนื่องจาก let คืนค่าผลลัพธ์ของแลมบ์ดา คุณจึงสามารถเรียกฟังก์ชันต่อกันและแปลงค่าทีละขั้นตอนได้

fun main() {
    val number = 4
    val output = number
        .let { it * 2 }
        .let { it + 1 }
    println(output)
}

run สำหรับตรวจสอบค่าว่างและคำนวณค่า

เช่นเดียวกับ let run ทำงานร่วมกับการเรียกแบบปลอดภัยได้ โดยรวมการตรวจสอบค่าว่างเข้ากับการเข้าถึงสมาชิกไว้ในบล็อกเดียว

fun main() {
    val message: String? = "Welcome"
    val length = message?.run {
        println(this)
        length
    }
    println("Length: $length")
}

การคืนค่าชนิดอื่น

ฟังก์ชันทั้งสองสามารถคืนค่าชนิดที่แตกต่างจากอ็อบเจ็กต์ได้ ชนิดของค่าที่คืนมาคือชนิดของค่าที่นิพจน์สุดท้ายประเมินได้

fun main() {
    val n = 10
    val label: String = n.let { "Value is $it" }
    println(label)
}

ควรเลือกใช้ let หรือ run เมื่อใด

ใช้ let สำหรับการดำเนินการที่ปลอดภัยจากค่าว่างและการแปลงค่า เมื่อการใช้ it ทำให้อ่านได้ชัดเจน

ใช้ run เมื่อคุณต้องการเรียกใช้สมาชิกหลายรายการของอ็อบเจ็กต์และคำนวณผลลัพธ์ โดย this ช่วยให้เข้าถึงสมาชิกได้โดยตรง

แบบทดสอบสั้น ๆ

ทดสอบความเข้าใจของคุณเกี่ยวกับ let และ run

ทบทวน

คุณได้เรียนรู้ฟังก์ชันขอบเขตสองฟังก์ชันที่คืนค่าผลลัพธ์:

  • let เปิดให้อ้างอิงอ็อบเจ็กต์ด้วย it และคืนค่าผลลัพธ์ของแลมบ์ดา จึงเหมาะสำหรับการแปลงค่าที่ปลอดภัยจากค่าว่าง
  • run เปิดให้อ้างอิงอ็อบเจ็กต์ด้วย this และคืนค่าผลลัพธ์ของแลมบ์ดา จึงเหมาะสำหรับจัดกลุ่มการเข้าถึงสมาชิก

ถัดไป คุณจะได้กำหนดค่าอ็อบเจ็กต์ด้วย apply และเพิ่มผลข้างเคียงด้วย also

คำถามที่พบบ่อย

บทเรียน “let และ run” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “let และ run” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kotlin Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “let และ run”

ดำเนินการกับออบเจ็กต์ คุณปฏิบัติ Kotlin Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kotlin Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kotlin Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “let และ run” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Kotlin Academy นี้ได้ไหม

ได้ บทเรียน Kotlin Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. let และ run
  2. apply และ also
  3. with
  4. การเลือกสิ่งที่เหมาะสม
← กลับไปที่ Kotlin Academy