การเข้าถึงสมาชิก: get, first, last, getOrNull
ดึงสมาชิกด้วยตัวเข้าถึงตามดัชนีและตัวเข้าถึงเชิงฟังก์ชัน
การเข้าถึงสมาชิก: get, first, last, getOrNull เป็นบทเรียน Kotlin Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kotlin Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน
วิธีเข้าถึงที่หลากหลาย
Kotlin มีหลายวิธีสำหรับอ่านองค์ประกอบ ได้แก่ ตามดัชนี ([], get) ตามตำแหน่ง (first, last) และแบบปลอดภัย (getOrNull, firstOrNull)
การเข้าถึงด้วยดัชนีด้วย []
รูปแบบวงเล็บเหลี่ยมเป็นคำย่อของ get(index) และจะส่งข้อยกเว้น IndexOutOfBoundsException หากดัชนีไม่ถูกต้อง
fun main() {
val items = listOf("a", "b", "c")
println(items[0]) // a
println(items[2]) // c
}get กับ []
list.get(i) เหมือนกับ list[i] ทุกประการ ต่างกันเพียงรูปแบบการเขียน แต่มีพฤติกรรมเหมือนกัน
fun main() {
val items = listOf(10, 20, 30)
println(items.get(1)) // 20
println(items[1]) // 20
}getOrNull สำหรับการเข้าถึงอย่างปลอดภัย
getOrNull(i) จะส่งคืนค่า null แทนการส่งข้อยกเว้น หากดัชนีอยู่นอกช่วง
fun main() {
val items = listOf("x", "y")
println(items.getOrNull(0)) // x
println(items.getOrNull(5)) // null
}getOrElse พร้อมค่าเริ่มต้น
getOrElse(i) { default } จะคำนวณค่าเริ่มต้นเมื่อจำเป็น หากดัชนีไม่ถูกต้อง
fun main() {
val items = listOf(1, 2, 3)
println(items.getOrElse(10) { -1 }) // -1
println(items.getOrElse(1) { -1 }) // 2
}first และ last
first() และ last() ส่งคืนองค์ประกอบที่ตรงตำแหน่ง ส่วนทั้งสองฟังก์ชันจะส่งข้อยกเว้นหากรายการว่าง
fun main() {
val nums = listOf(5, 8, 12)
println(nums.first()) // 5
println(nums.last()) // 12
}firstOrNull / lastOrNull
รูปแบบ ...OrNull จะส่งคืนค่า null แทนการส่งข้อยกเว้นเมื่อรายการว่าง จึงปลอดภัยกว่ามาก
fun main() {
val empty: List<Int> = emptyList()
println(empty.firstOrNull()) // null
println(empty.lastOrNull()) // null
}รูปแบบที่ใช้เงื่อนไข
first { predicate } ส่งคืนองค์ประกอบแรกที่ตรงตามเงื่อนไข ส่วน find { predicate } เป็นชื่อเรียกอีกแบบที่ส่งคืนค่า nullable ของ firstOrNull { predicate }
fun main() {
val nums = listOf(3, 7, 8, 11)
println(nums.first { it > 5 }) // 7
println(nums.firstOrNull { it > 100 }) // null
println(nums.find { it > 100 }) // null (same)
}การเข้าถึงค่าในแมป
แมปใช้รูปแบบ [] เช่นเดียวกัน แต่จะส่งคืนค่า nullable ส่วน getValue(key) จะส่งข้อยกเว้นหากไม่มีคีย์ และ getOrDefault จะมอบค่าทดแทน
fun main() {
val ages = mapOf("Alice" to 30, "Bob" to 25)
println(ages["Alice"]) // 30
println(ages["Charlie"]) // null
println(ages.getOrDefault("Z", 0)) // 0
}elementAt และ elementAtOrNull
เซตและคอลเลกชันอื่นที่ไม่รองรับการเข้าถึงด้วยดัชนี ก็มี elementAt(i) และรูปแบบ OrNull ให้ใช้เช่นกัน
fun main() {
val s = setOf("a", "b", "c")
println(s.elementAt(1)) // b
println(s.elementAtOrNull(10)) // null
}การเลือกตัวเข้าถึงที่เหมาะสม
ควรเลือกรูปแบบที่ปลอดภัย (getOrNull, firstOrNull, getOrDefault) เว้นแต่คุณจะยืนยันได้ว่าดัชนีถูกต้อง ข้อยกเว้นใช้ทรัพยากรมากและมักลืมจัดการ
fun headOf(list: List<Int>): Int? = list.firstOrNull()
fun main() {
println(headOf(listOf(1, 2, 3))) // 1
println(headOf(emptyList())) // null
}ตรวจสอบอย่างรวดเร็ว
ทบทวน
ใช้ []/get เพื่อเข้าถึงข้อมูลโดยตรง ซึ่งจะส่งข้อยกเว้นเมื่อเกิดข้อผิดพลาด ควรเลือก getOrNull, firstOrNull, lastOrNull, getOrDefault และ getOrElse เมื่อขอบเขตอาจไม่ถูกต้อง แมปใช้ [] เพื่อรับค่า nullable และใช้ getValue เมื่อยอมรับการส่งข้อยกเว้น
คำถามที่พบบ่อย
บทเรียน “การเข้าถึงสมาชิก: get, first, last, getOrNull” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การเข้าถึงสมาชิก: get, first, last, getOrNull” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kotlin Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kotlin Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การเข้าถึงสมาชิก: get, first, last, getOrNull”
ดึงสมาชิกด้วยตัวเข้าถึงตามดัชนีและตัวเข้าถึงเชิงฟังก์ชัน คุณปฏิบัติ Kotlin Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kotlin Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kotlin Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การเข้าถึงสมาชิก: get, first, last, getOrNull” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Kotlin Academy นี้ได้ไหม
ได้ บทเรียน Kotlin Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- listOf, setOf, mapOf: คอลเลกชันอ่านอย่างเดียว
- mutableListOf, mutableMapOf: ตัวสร้างแบบเปลี่ยนแปลงได้
- การเข้าถึงสมาชิก: get, first, last, getOrNull
- วนซ้ำและแปลงคอลเลกชันด้วยไลบรารีมาตรฐาน