การเลือกสิ่งที่เหมาะสม
ควรใช้แต่ละแบบเมื่อใด
การเลือกสิ่งที่เหมาะสม เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- let และ run
- apply และ also
- with
- การเลือกสิ่งที่เหมาะสม