Kotlin Academy · บทเรียน

การเลือกสิ่งที่เหมาะสม

ควรใช้แต่ละแบบเมื่อใด

บทเรียน 4 จาก 413 ขั้นตอน

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

การเลือกฟังก์ชันขอบเขต

เมื่อมีฟังก์ชันขอบเขตให้เลือกใช้ห้าฟังก์ชัน การเลือกฟังก์ชันที่เหมาะสมขึ้นอยู่กับคำถามสองข้อ:

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

ตารางตัดสินใจ

ภาพรวมทั้งหมดมีดังนี้:

  • let ใช้ it และคืนค่าผลลัพธ์ของแลมบ์ดา
  • run ใช้ this และคืนค่าผลลัพธ์ของแลมบ์ดา
  • with ใช้ this เป็นอาร์กิวเมนต์ และคืนค่าผลลัพธ์ของแลมบ์ดา
  • apply ใช้ this และคืนค่าอ็อบเจ็กต์
  • also ใช้ it และคืนค่าอ็อบเจ็กต์

ใช้ let เพื่อความปลอดภัยจากค่าว่าง

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

fun main() {
    val name: String? = "Ada"
    name?.let { println("Hello $it") }
}

ใช้ run เพื่อใช้ this และรับผลลัพธ์

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

fun main() {
    val text = "scope"
    val info = text.run { "$this has length $length" }
    println(info)
}

ใช้ with เพื่อจัดกลุ่ม

เมื่อคุณมีอ็อบเจ็กต์ที่ไม่เป็นค่าว่างและต้องการดำเนินการหลายอย่างกับอ็อบเจ็กต์นั้น การใช้ with จะอ่านได้เป็นธรรมชาติ

fun main() {
    val list = listOf(1, 2, 3)
    with(list) {
        println(sum())
        println(size)
    }
}

ใช้ apply เพื่อกำหนดค่า

เมื่อคุณสร้างอ็อบเจ็กต์และต้องกำหนดค่าคุณสมบัติหลายรายการ apply จะช่วยให้โค้ดเป็นระเบียบและคืนค่าอ็อบเจ็กต์

data class Server(var host: String = "", var port: Int = 0)

fun main() {
    val server = Server().apply {
        host = "0.0.0.0"
        port = 80
    }
    println(server)
}

ใช้ also สำหรับผลข้างเคียง

เมื่อคุณต้องการบันทึกข้อมูล แก้ไขข้อบกพร่อง หรือตรวจสอบความถูกต้องโดยไม่เปลี่ยนอ็อบเจ็กต์ ให้เลือกใช้ also ร่วมกับ it

fun main() {
    val nums = listOf(1, 2, 3)
        .also { println("Got ${it.size} items") }
    println(nums.sum())
}

การรวมฟังก์ชันขอบเขต

โค้ดจริงมักเรียกฟังก์ชันเหล่านี้ต่อกัน: กำหนดค่าด้วย apply บันทึกข้อมูลด้วย also และแปลงค่าด้วย let

data class User(var name: String = "", var score: Int = 0)

fun main() {
    val label = User()
        .apply { name = "Max"; score = 90 }
        .also { println("Created $it") }
        .let { "${it.name}: ${it.score}" }
    println(label)
}

การหลีกเลี่ยงการใช้มากเกินไป

ฟังก์ชันขอบเขตอาจทำให้อ่านยากขึ้นหากซ้อนกันหรือใช้มากเกินไป หากการใช้ตัวแปรธรรมดาและเขียนโค้ดอย่างชัดเจนทำให้อ่านได้ง่ายกว่า ให้เลือกวิธีนั้น ใช้ฟังก์ชันขอบเขตเพื่อลดการเขียนซ้ำที่เกิดขึ้นจริง ไม่ใช่เพื่อทำให้โค้ดดูซับซ้อนอย่างชาญฉลาด

ข้อควรระวังเมื่อซ้อนกัน

การซ้อนฟังก์ชันขอบเขตทำให้ it และ this มีความกำกวม หากจำเป็นต้องซ้อนกัน ให้เปลี่ยนชื่อพารามิเตอร์เพื่อให้โค้ดชัดเจน

fun main() {
    val outer = "A"
    outer.let { o ->
        "B".let { i ->
            println("$o then $i")
        }
    }
}

แบบจำลองในใจอย่างรวดเร็ว

โปรดจำไว้ว่า ฟังก์ชันที่คืนค่าอ็อบเจ็กต์ (apply, also) ใช้สร้างกระบวนการต่อเนื่อง ส่วนฟังก์ชันที่คืนค่าผลลัพธ์ (let, run, with) ใช้แปลงค่า เลือกใช้ it หรือ this โดยพิจารณาจากความอ่านง่าย

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

คุณควรใช้ฟังก์ชันขอบเขตใดเพื่อกำหนดค่าให้อ็อบเจ็กต์ที่เพิ่งสร้างและรับอ็อบเจ็กต์นั้นกลับคืนมา

ทบทวน

ตอนนี้คุณมีกรอบการตัดสินใจแล้ว: เลือกโดยพิจารณาจากการอ้างอิง (this กับ it) และค่าที่คืนมา (อ็อบเจ็กต์กับผลลัพธ์) let และ run ใช้แปลงค่า with ใช้จัดกลุ่ม apply ใช้กำหนดค่า และ also ใช้เพิ่มผลข้างเคียง ใช้ฟังก์ชันเหล่านี้เพื่อลดความรกของโค้ด ไม่ใช่เพื่อเพิ่มความรก

เริ่มต้นได้ฟรี

เรียนรู้ Kotlin ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
51
บทเรียน
203

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

บทเรียน “การเลือกสิ่งที่เหมาะสม” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “การเลือกสิ่งที่เหมาะสม”

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

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

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

บทเรียน “การเลือกสิ่งที่เหมาะสม” ใช้เวลานานแค่ไหน

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

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

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

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

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