Neuerungen in Swift 5.6 – Teil 2

Type placeholders

Mithilfe der sogenannten Type placeholder teilt man Swift mit, dass der Typ einer Variablen oder Konstanten mittels Type Inference automatisch ermittelt werden soll. Um einen Type placeholder zu setzen, nutzt man für die Typ-Angabe der gewünschten Variablen/Konstanten einen Unterstrich.

Das nachfolgende Listing zeigt ein Beispiel zum Einsatz der Type placeholder. Die Konstante firstValue nutzt Type Inference auf die bekannte Art und Weise, weshalb Swift ihr den Typ Int zuweist. Gleiches geschieht auch bei secondValue, nur mit dem Unterschied, dass für die Deklaration der beschriebene Type placeholder zum Einsatz kommt. Swift leitet demnach den Typ für secondValue selbst via Type Inference ab und setzt ihn in diesem Fall auf Int.

let firstValue = 19
let secondValue: _ = 99

Zugegeben, das gezeigte Beispiel ist für die Praxis nicht wirklich relevant, schließlich greift auch bei firstValue ohne Einsatz eines Type placeholders die Type Inference.

Spannender wird es bei komplexeren Typen. Ein solches Beispiel zeigt das nachfolgende Listing auf Basis der Enumeration Either. Either besitzt zwei Cases: first und second. Man soll Instanzen dieses Typs also einen von zwei Werten zuweisen können. Die Typen dieser Werte sind generisch und werden als First und Second deklariert.

Erstellt man nun eine Either-Instanz und weist die einer Variablen oder Konstanten zu, musste man bisher für die beiden Generics First und Second konkrete Typen angeben. Das kann man sich nun für den Typ sparen, den man bei der Zuweisung setzt. Das nachfolgende Listing demonstriert eine solche Verwendung von Type placeholders.

enum Either<First, Second> {
  case first(First)
  case second(Second)
}

let stringEither: Either<_, String> = .first("Hello world")
let intEither: Either<Int, _> = .second(19)

Euer Thomas


Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert