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
Schreibe einen Kommentar