English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Swift Type Aliases (Typealias)

In diesem Artikel werden Sie Typaliases in Swift und ihre Anwendungen lernen.

Typaliases erlauben es Ihnen, bestehendeDaten TypenBieten Sie eine neue Bezeichnung. Nach der Deklaration eines Typaliases können Sie den Alias in ganz dem Programm anstelle des bestehenden Typs verwenden.

Typaliases erstellen keine neuen Typen. Sie bieten nur eine neue Bezeichnung für bestehende Typen.

Das Hauptziel von typedef ist es, unseren Code lesbarer zu gestalten und ihn im Kontext klarer und verständlicher zu machen, um ihn für Menschen lesbar zu machen.

Wie erstellt man Typaliases?

mit dem Schlüsselwort typedef deklariert werden:

typealias name = existing type

In Swift können die meisten Typen mit typealias verwendet werden. Sie können sein:

  • Eingebaute Typen(z.B. String, Int)

  • Benutzerdefinierte Typen(z.B. Klassen, Strukturen, Enumerations)

  • Komplexe Typen(z.B. Closures)

Typaliases für eingebaute Typen

Sie können typealias für alle eingebauten Datentypen wie String, Int, Float und andere verwenden.

Beispiel:

typealias StudentName = String

Diese Deklaration ermöglichtSchülernameAnstelle von String. Daher können Sie so vorgehen, wenn Sie eine String-Konstante erstellen möchten, die jedoch wie ein Schülername aussieht:

let name:StudentName = "Jack"

Ohne Verwendung von typealias sollte die String-Konstante so deklariert werden:

let name:String = "Jack"

In den beiden obigen Beispielen wird eine String-Konstante erstellt. Aber durch die Verwendung von typealias wird unser Code lesbarer.

Benutzerdefinierte Typaliases

In vielen Fällen müssen Sie Ihre eigenen Datentypen erstellen. Angenommen, Sie möchten einen Typ für Student erstellen, dann können Sie die folgenden Klassen verwenden, um ihn zu erstellen:

class Student {
{}

Jetzt kann eine Gruppe von Schülern als Array dargestellt werden:

var students:Array<Student> = []

Durch die Verwendung von typealias zur Erstellung Ihres eigenen Typs für Array<Student> wird die obige Deklaration lesbarer:

typealias Students = Array<Student>

Jetzt können wir den Code lesbarer gestalten:

var students:Students = []

Komplexe Typaliases

Let's analyze another example. Suppose we have a method that takes a closure as an input parameter.

If you are not familiar with closures, do not worry. Just consider it as a special kind of function.

func someMethod(oncomp: (Int)-> (String)){
{}

The above example takes a closure as the input of someMethod. The closure takes an Int value and returns a String.

You can see (Int)-> The use of (String) has no meaning for developers. You can use typealias to provide it with a new name:

typealias CompletionHandler = (Int)-> (String)

Now, you can rewrite the method as:

func someMethod(oncomp: CompletionHandler){
{}

We can see that using typealias, the same code looks clearer and more friendly to programmers.