Typumwandlung: is, as?, as! und as
Prüfen und konvertieren Sie Typen sicher mit Swifts Operatoren zur Typumwandlung.
Typumwandlung: is, as?, as! und as ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.
Was ist Typ-Casting?
Mit Typ-Casting können Sie prüfen, ob eine Instanz zu einer anderen Klasse in ihrer Hierarchie gehört, oder sie in diese umwandeln.
class Animal { var name: String = "Animal" }
class Dog: Animal { func bark() { print("Woof") } }
let a: Animal = Dog()
print(a.name)Der Operator is
Verwenden Sie is, um zu prüfen, ob eine Instanz zu einer bestimmten Unterklasse gehört.
let a: Animal = Dog()
if a is Dog {
print("It's a dog")
}Downcasting mit as?
as? versucht ein Downcasting und gibt ein Optional zurück. Schlägt es fehl, ist das Ergebnis nil.
let a: Animal = Dog()
if let dog = a as? Dog {
dog.bark()
} else {
print("Not a dog")
}Downcasting mit as!
as! erzwingt die Umwandlung in einen Subtyp. Verwenden Sie es nur, wenn Sie sich des Typs sicher sind; bei einem falschen Typ kommt es zu einem Absturz.
let a: Animal = Dog()
let dog = a as! Dog
dog.bark()Upcasting mit as
Das Upcasting von einer Unterklasse zu einer Oberklasse gelingt immer und verwendet as.
let dog = Dog()
let animal = dog as Animal
print(animal.name)Typ-Casting in Collections
Arrays mit gemischten Typen, die als [Any] typisiert sind, erfordern ein Casting, um typspezifisches Verhalten zu verwenden.
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) }
}Typ-Casting mit AnyObject
AnyObject repräsentiert jede Klasseninstanz. Verwenden Sie as?, um den konkreten Typ zu extrahieren.
let objs: [AnyObject] = [Dog(), Dog()]
for obj in objs {
if let d = obj as? Dog { d.bark() }
}Protokolltypen casten
Sie können mithilfe derselben Operatoren zwischen Protokolltypen und konkreten Typen casten.
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) }Pattern Matching mit is in switch
Die switch-Anweisung von Swift kann mithilfe des is-Patterns auf Typen prüfen.
let value: Any = 42
switch value {
case is Int: print("Integer")
case is String: print("String")
default: print("Other")
}as? in switch-Patterns
Kombinieren Sie switch mit let x as Type, um in einem Schritt zu prüfen und zu binden.
let value: Any = "Swift"
switch value {
case let s as String: print("String: \(s)")
case let i as Int: print("Int: \(i)")
default: break
}Best Practices für sicheres Casting
Bevorzugen Sie immer as? gegenüber as!, um Laufzeitabstürze im Produktionscode zu vermeiden.
func describe(_ obj: AnyObject) {
if let dog = obj as? Dog { dog.bark(); return }
print("Unknown type")
}Kurze Überprüfung
Welcher Operator gibt beim Downcasting ein Optional zurück?
Zusammenfassung der Lektion
Swift-Typ-Casting: is prüft den Typ, as? führt ein sicheres Downcasting zu einem Optional durch, as! erzwingt ein Downcasting und as führt ein Upcasting durch. Bevorzugen Sie as? im Produktionscode.
Häufig gestellte Fragen
Ist die Lektion „Typumwandlung: is, as?, as! und as“ kostenlos?
Ja — der vollständige Text von „Typumwandlung: is, as?, as! und as“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Typumwandlung: is, as?, as! und as“?
Prüfen und konvertieren Sie Typen sicher mit Swifts Operatoren zur Typumwandlung. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Swift Academy zu starten?
Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Typumwandlung: is, as?, as! und as“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?
Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Klassenvererbung und das Schlüsselwort super
- override, final und das Verhindern von Unterklassen
- Typumwandlung: is, as?, as! und as
- Deinitialisierer und Speicherlebenszyklus