0Pricing
Kotlin Academy · Ders

is ve as İşleçleri

Tür denetimleri ve dönüşümler

is ve as İşleçleri, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Kotlin Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Kotlin Academy kursu toplamda 4 dersten oluşur.

Türleri Denetleme ve Dönüştürme

Kotlin, çalışma zamanında türlerle çalışmak için iki işleç sunar:

  • is, bir değerin belirli bir türde olup olmadığını denetler
  • as, bir değeri bir türe dönüştürür

Her ikisinin de burada öğreneceğiniz güvenli biçimleri vardır.

is İşleci

is, bir değerin bir türle eşleşip eşleşmediğini belirten bir mantıksal değer döndürür.

Akıllı tür dönüşümlerinin temelini oluşturur.

fun main() {
    val x: Any = "hello"
    println(x is String)
    println(x is Int)
}

!is ile Olumsuz Denetim

Bir değerin verilen türde olmadığını sınamak için !is kullanın. Bu, NOT denetimidir.

Koruma yan tümcelerinde doğal biçimde okunur.

fun main() {
    val x: Any = 42
    if (x !is String) {
        println("not a string")
    }
}

as İşleci

as, açık bir tür dönüşümü gerçekleştirir. Değer gerçekten o türdeyse, doğru türle yazılmış olarak geri alırsınız.

Derleyici türü kendi başına çıkaramadığında kullanın.

fun main() {
    val x: Any = "hello"
    val s = x as String
    println(s.length)
}

as Ne Zaman Başarısız Olur

Değer hedef türde değilse as, bir ClassCastException fırlatır.

Bu güvenli olmayan biçimdir; bu nedenle yalnızca emin olduğunuzda kullanın.

fun main() {
    val x: Any = 42
    try {
        val s = x as String
        println(s)
    } catch (e: ClassCastException) {
        println("Cannot cast Int to String")
    }
}

Güvenli Tür Dönüşümü as?

as? güvenli tür dönüşümüdür. Değeri türe dönüştürülmüş olarak döndürür veya dönüşüm mümkün değilse null döndürür.

Hiçbir hata fırlatılmaz.

fun main() {
    val x: Any = 42
    val s = x as? String
    println(s)
}

Elvis ile Güvenli Tür Dönüşümü

Dönüşüm başarısız olduğunda bir geri dönüş sağlamak için as? işleçini Elvis ile birlikte kullanın.

Bu, çökmeye yol açmayan temiz bir kalıptır.

fun main() {
    val x: Any = 42
    val s = (x as? String) ?: "default"
    println(s)
}

is, Akıllı Tür Dönüşümlerini Etkinleştirir

Bir is denetiminden sonra genellikle as kullanmanız gerekmez; çünkü akıllı tür dönüşümleri devreye girer.

Açık as kullanımına yalnızca akıllı tür dönüşümü uygulanamadığında başvurun.

fun main() {
    val x: Any = "smart"
    if (x is String) {
        println(x.uppercase()) // smart cast, no as needed
    }
}

Koleksiyonlarda Tür Dönüşümü

Karışık koleksiyonları filtrelerken güvenli tür dönüşümleri kullanışlıdır.

filterIsInstance, yalnızca eşleşen öğeleri tutmak için dahili olarak is kullanır.

fun main() {
    val items: List<Any> = listOf(1, "two", 3, "four")
    val strings = items.filterIsInstance<String>()
    println(strings)
}

Doğru İşleci Seçme

Basit bir kılavuz:

  • Mantıksal bir değere mi ihtiyacınız var? is kullanın
  • Türden emin misiniz? as kullanın
  • Emin değil misiniz? Geri dönüşle birlikte as? kullanın
fun describe(x: Any): String {
    val text = x as? String ?: return "not text"
    return "text of length " + text.length
}

fun main() {
    println(describe("hello"))
    println(describe(99))
}

Bir Araya Getirme

Tür işleçleri size tam denetim sağlar:

  • is / !is türleri denetler
  • as tür dönüşümü yapar ancak hata fırlatabilir
  • as? güvenli biçimde tür dönüşümü yapar ve başarısızlıkta boş değer döndürür
fun main() {
    val values: List<Any> = listOf(1, "hi", 2.5)
    for (v in values) {
        when {
            v is Int -> println("int " + v)
            v is String -> println("string " + v)
            else -> println("other")
        }
    }
}

Kısa Sınama

is ve as konusundaki anlayışınızı sınayın.

Özet

Tür işleçlerini öğrendiniz:

  • Tür denetimleri için is ve !is
  • Hata fırlatabilen tür dönüşümleri için as
  • Boş değer döndüren güvenli tür dönüşümleri için as?

Sırada tüm durumları kapsaması için when ifadesini eksiksiz hâle getireceksiniz.

Sıkça Sorulan Sorular

“is ve as İşleçleri” dersi ücretsiz mi?

Evet — “is ve as İşleçleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Kotlin Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Kotlin Academy kursu toplamda 4 dersten oluşur.

“is ve as İşleçleri” dersinde ne öğreneceğim?

Tür denetimleri ve dönüşümler Kotlin Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Kotlin Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Kotlin Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“is ve as İşleçleri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Kotlin Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Kotlin Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. İfade Olarak when
  2. Akıllı Dönüşümler
  3. is ve as İşleçleri
  4. Tüm Durumları Kapsayan when
← Kotlin Academy Sayfasına Dön