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

การเข้าถึงสมาชิก: 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
}

ตรวจสอบอย่างรวดเร็ว

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

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

  1. listOf, setOf, mapOf: คอลเลกชันอ่านอย่างเดียว
  2. mutableListOf, mutableMapOf: ตัวสร้างแบบเปลี่ยนแปลงได้
  3. การเข้าถึงสมาชิก: get, first, last, getOrNull
  4. วนซ้ำและแปลงคอลเลกชันด้วยไลบรารีมาตรฐาน
← กลับไปที่ Kotlin Academy