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

ค่าและลำดับของ Enum

วนซ้ำและเข้าถึงด้วยดัชนี

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

การแสดงค่าคงที่ทั้งหมด

ฟังก์ชัน values() ที่สร้างขึ้นโดยอัตโนมัติจะส่งคืนอาร์เรย์ของค่าคงที่ทุกค่าเรียงตามลำดับการประกาศ

enum class Suit { HEARTS, CLUBS }

fun main() {
    for (s in Suit.values()) println(s)
}

ใช้ entries แทน values()

Kotlin รุ่นใหม่แนะนำให้ใช้ entries ซึ่งส่งคืนรายการที่แก้ไขไม่ได้และไม่ต้องสร้างอาร์เรย์ใหม่ทุกครั้งที่เรียก

enum class Suit { HEARTS, CLUBS }

fun main() {
    for (s in Suit.entries) println(s)
}

พร็อพเพอร์ตีลำดับตำแหน่ง

ค่าคงที่ทุกค่ามี ordinal ซึ่งคือตำแหน่งเริ่มนับจากศูนย์ตามลำดับการประกาศ

enum class Size { S, M, L }

fun main() {
    println(Size.S.ordinal)
    println(Size.L.ordinal)
}

การนับค่าคงที่

ใช้ entries.size เพื่อนับว่ามีค่าคงที่อยู่กี่ค่า

enum class Day { MON, TUE, WED }

fun main() {
    println(Day.entries.size)
}

การวนซ้ำพร้อมดัชนี

ใช้ลำดับตำแหน่งหรือดัชนีร่วมกันเพื่อกำหนดหมายเลขให้ค่าคงที่แต่ละค่า

enum class Color { RED, GREEN, BLUE }

fun main() {
    for (c in Color.entries) {
        println("${c.ordinal}: $c")
    }
}

สรุป valueOf และชื่อ

จับคู่ valueOf() (จากสตริงเป็นค่าคงที่) กับ name (จากค่าคงที่เป็นสตริง) เพื่อแปลงกลับไปกลับมา

enum class Status { ON, OFF }

fun main() {
    val s = Status.valueOf("ON")
    println(s.name)
}

การแปลงค่าคงที่ทั้งหมด

เนื่องจาก entries เป็นรายการ คุณจึงใช้ฟังก์ชันของชุดข้อมูล เช่น map ได้

enum class Coin(val cents: Int) { PENNY(1), DIME(10) }

fun main() {
    val names = Coin.entries.map { it.name }
    println(names)
}

การค้นหาด้วยพร็อพเพอร์ตี

ค้นหาค่าคงที่ด้วย first หรือ find โดยใช้พร็อพเพอร์ตีเป็นเงื่อนไข

enum class Coin(val cents: Int) { PENNY(1), DIME(10) }

fun main() {
    val c = Coin.entries.first { it.cents == 10 }
    println(c)
}

ลำดับตำแหน่งเปลี่ยนแปลงได้ง่าย

หลีกเลี่ยงการจัดเก็บค่า ordinal ในระยะยาว การจัดเรียงค่าคงที่ใหม่จะเปลี่ยนลำดับตำแหน่งและทำให้ข้อมูลที่บันทึกไว้ใช้ไม่ได้ ควรจัดเก็บ name แทน

enum class Level { LOW, HIGH }

fun main() {
    println(Level.HIGH.name)
}

ค่าคงที่ถัดไปตามลำดับตำแหน่ง

คุณสามารถเลื่อนไปยังค่าคงที่ต่าง ๆ โดยใช้ลำดับตำแหน่งและรายการ entries ได้

enum class Gear { FIRST, SECOND, THIRD }

fun next(g: Gear): Gear {
    val all = Gear.entries
    return all[(g.ordinal + 1) % all.size]
}

fun main() {
    println(next(Gear.FIRST))
}

การนำทุกอย่างมารวมกัน

สรุปชนิดแจกแจงค่าโดยวนซ้ำและอ่านทั้ง name และ ordinal

enum class Planet { MERCURY, VENUS, EARTH }

fun main() {
    Planet.entries.forEach {
        println("${it.ordinal} -> ${it.name}")
    }
}

ตรวจสอบความเข้าใจ

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

สรุป

คุณได้เรียนรู้การแจกแจงและจัดทำดัชนีให้ค่าคงที่:

  • entries (แนะนำให้ใช้) และ values() แสดงค่าคงที่ทั้งหมด
  • ordinal คือตำแหน่งการประกาศที่เริ่มนับจากศูนย์
  • entries เป็นรายการ จึงใช้ฟังก์ชันของชุดข้อมูลได้
  • ควรจัดเก็บ name แทน ordinal เพื่อให้ข้อมูลคงทน
enum class Size { S, M, L }

fun main() {
    println(Size.entries.size)
    println(Size.M.ordinal)
}

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

บทเรียน “ค่าและลำดับของ Enum” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “ค่าและลำดับของ Enum”

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

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

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

บทเรียน “ค่าและลำดับของ Enum” ใช้เวลานานแค่ไหน

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

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

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

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

  1. การกำหนด Enum
  2. คุณสมบัติและเมธอดของ Enum
  3. Enum กับ when
  4. ค่าและลำดับของ Enum
← กลับไปที่ Kotlin Academy