ค่าและลำดับของ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การกำหนด Enum
- คุณสมบัติและเมธอดของ Enum
- Enum กับ when
- ค่าและลำดับของ Enum