CodeBlanks Logo Icon CodeBlanks

Enum değerleri

Enum elemanlarına erişmeyi ve değerlerini öğrenirsin.

Enum değerleri: entries, valueOf, ordinal

entries tüm sabitleri bir liste olarak verir. valueOf("AD") isimden sabite gider. ordinal sabitin tanım sırasını verir.

val liste = Color.entries  // [RED, GREEN, BLUE]
val c = Color.valueOf("RED")
println(c.ordinal)  // 0

entries Kotlin 2.x'te tercih edilen yoldur; değiştirilemez bir listedir. valueOf bilinmeyen bir ad verirsen hata fırlatır; bu yüzden adı doğru yazmak gerekir. ordinal 0'dan başlar ve tanım sırasına göre artar.

entries ve values farkı

Kotlin 2.x'te entries önerilir; değiştirilemez bir List döner. Eski values() her çağrıda yeni bir dizi kurar.

val a = Color.entries   // List<Color>
val b = Color.values()  // Array<Color>

entries her seferinde aynı listeyi paylaşır; bu yüzden daha verimlidir. values() eski kodlarda görülür; yeni yazımında entries kullan. İkisi de sabitleri tanım sırasında verir.

Uygulama Sabitleri sıralarıyla yazdır

Size adında bir enum class tanımla: SMALL, MEDIUM, LARGE. entries üzerinde döngü ile her sabitin adını ve ordinal değerini yazdır.

Başlangıç kodu

Main.kt
fun main() {
    // Bir beden türü tanımla ve her sabitin adı ile sırasını yazdır
}

Örnek çözüm

Main.kt
enum class Size { SMALL, MEDIUM, LARGE }

fun main() {
    for (s in Size.entries) {
        println("${s.name} ${s.ordinal}")
    }
}

Beklenen çıktı

SMALL 0
MEDIUM 1
LARGE 2

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Yöntem ve görev eşleştir

Kavram Anlamı
entries Tüm sabitler
valueOf İsme göre bul
ordinal Sıra numarası
name Sabitin adı

2 Boşluğu doldur: isimden sabite

Soru
val c = Color.____("RED")
Cevap
val c = Color.valueOf("RED")

Açıklama: valueOf bir adı sabite çevirir.

3 Color.GREEN.ordinal ne döner? (Color: RED, GREEN, BLUE)

  • Sabitin adı
  • Toplam sabit sayısı
  • Sabitin sırası Doğru cevap
  • Sabitin rengi

Açıklama: ordinal tanım sırasını verir; GREEN 1 olur.

Başlangıç bölümündeki tüm dersler