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ı denetleras, 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?
iskullanın - Türden emin misiniz?
askullanı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/!istürleri denetlerastür dönüşümü yapar ancak hata fırlatabiliras?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
isve!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
- İfade Olarak when
- Akıllı Dönüşümler
- is ve as İşleçleri
- Tüm Durumları Kapsayan when