Swift Academy · Ders

Tür Dönüştürme: is, as?, as! ve as

Swift'in tür dönüştürme işleçleriyle türleri güvenli biçimde denetleyip dönüştürün.

3. ders / 413 adım

Tür Dönüştürme: is, as?, as! ve as, CoddyKit'te ücretsiz bir Swift 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, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 4 dersten oluşur.

Tür Dönüştürme Nedir?

Tür dönüştürme, bir örneği hiyerarşisindeki farklı bir sınıfa dönüştürmenizi veya bu sınıf olarak denetlemenizi sağlar.

class Animal { var name: String = "Animal" }
class Dog: Animal { func bark() { print("Woof") } }
let a: Animal = Dog()
print(a.name)

Tür Denetimi Operatörü

Bir örneğin belirli bir alt sınıfa ait olup olmadığını denetlemek için is kullanın.

let a: Animal = Dog()
if a is Dog {
  print("It's a dog")
}

as? ile Alt Türe Dönüştürme

as?, alt türe dönüştürmeyi dener ve isteğe bağlı bir değer döndürür. Dönüştürme başarısız olursa sonuç boş değer olur.

let a: Animal = Dog()
if let dog = a as? Dog {
  dog.bark()
} else {
  print("Not a dog")
}

as! ile Alt Türe Dönüştürme

as!, zorunlu olarak bir alt türe dönüştürür. Yalnızca türden emin olduğunuzda kullanın; tür yanlışsa uygulama çöker.

let a: Animal = Dog()
let dog = a as! Dog
dog.bark()

as ile Üst Türe Dönüştürme

Alt sınıftan üst sınıfa dönüştürme her zaman başarılı olur ve as kullanır.

let dog = Dog()
let animal = dog as Animal
print(animal.name)

Koleksiyonlarda Tür Dönüştürme

[Any] türündeki farklı türleri içeren diziler, belirli davranışları kullanabilmek için tür dönüştürme gerektirir.

let items: [Any] = [1, "hello", Dog()]
for item in items {
  if let d = item as? Dog { d.bark() }
  if let s = item as? String { print(s) }
}

AnyObject ile Tür Dönüştürme

AnyObject, herhangi bir sınıf örneğini temsil eder. Somut türü çıkarmak için as? kullanın.

let objs: [AnyObject] = [Dog(), Dog()]
for obj in objs {
  if let d = obj as? Dog { d.bark() }
}

Protokol Türlerini Dönüştürme

Protokol türleri ile somut türler arasında aynı operatörleri kullanarak dönüştürme yapabilirsiniz.

protocol Runnable { func run() }
class Cat: Animal, Runnable { func run() { print("Cat runs") } }
let r: Runnable = Cat()
if let cat = r as? Cat { print(cat.name) }

switch İçinde is ile Kalıp Eşleştirme

Swift'in switch ifadesi, is kalıbını kullanarak türe göre eşleştirme yapabilir.

let value: Any = 42
switch value {
case is Int: print("Integer")
case is String: print("String")
default: print("Other")
}

switch Kalıplarında as?

Hem denetlemek hem de tek adımda bağlamak için switch yapısını let x as Type ile birleştirin.

let value: Any = "Swift"
switch value {
case let s as String: print("String: \(s)")
case let i as Int: print("Int: \(i)")
default: break
}

Güvenli Tür Dönüştürme İçin En İyi Uygulamalar

Üretim kodunda çalışma zamanı çökmelerini önlemek için her zaman as! yerine as? kullanmayı tercih edin.

func describe(_ obj: AnyObject) {
  if let dog = obj as? Dog { dog.bark(); return }
  print("Unknown type")
}

Hızlı Kontrol

Alt türe dönüştürme sırasında isteğe bağlı bir değer döndüren operatör hangisidir?

Ders Özeti

Swift'te tür dönüştürme: is türü denetler, as? güvenli biçimde isteğe bağlı bir değere alt türe dönüştürür, as! zorunlu alt türe dönüştürme yapar, as üst türe dönüştürür. Üretim kodunda as? kullanmayı tercih edin.

Başlamak ücretsiz

Yapay zeka eğitmeniyle Swift öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
122
Dersler
409

Sıkça Sorulan Sorular

“Tür Dönüştürme: is, as?, as! ve as” dersi ücretsiz mi?

Evet — “Tür Dönüştürme: is, as?, as! ve as” 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 Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 4 dersten oluşur.

“Tür Dönüştürme: is, as?, as! ve as” dersinde ne öğreneceğim?

Swift'in tür dönüştürme işleçleriyle türleri güvenli biçimde denetleyip dönüştürün. Swift 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.

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

Önceden deneyim gerekmez. CoddyKit'te Swift 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.

“Tür Dönüştürme: is, as?, as! ve as” 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 Swift Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Swift 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. Sınıf Kalıtımı ve super Anahtar Sözcüğü
  2. override, final ve Alt Sınıf Oluşturmayı Engelleme
  3. Tür Dönüştürme: is, as?, as! ve as
  4. Sonlandırıcılar ve Bellek Yaşam Döngüsü
← Swift Academy Sayfasına Dön