2016-07-11 10 views
0

Wenn Sie mit Swift Generics arbeiten, müssen die Typ-Platzhalter alle vom selben Typ sein? Im folgenden Beispiel werden alle Typ-Platzhalter in einen Zeichenfolgetyp umgewandelt. Ist es möglich, dass der Parameter ein String ist und der Rückgabetyp ein Int oder Generics funktioniert, wo jeder Platzhalter vom selben Typ ist?Schnelle generische Parameter und Rückgabetypen

Hier ist das Beispiel:

func takeAndReturnSameThing<T>(t: T) -> T { 
    return t 
} 

Let thing = takeAndReturnSameThing("howdy") 

Antwort

1

Ja

Der ganze Sinn der Typ-Parameter („Platzhalter“) ist, dass sie konsequent die gleiche Art darstellen.

Wenn Sie mehrere Typen generisch darstellen möchten, führen Sie neue Typparameter ein.

func takeAndReturnADifferentThing<T, U>(t: T) -> U { 
    return t.getU() 
} 
1

Sie können mehrere generische Typen wie dieses:

func takeAndReturnDifferentThing<T,U>(t:T) -> U { 
    return t.convertToU() // Assuming type T has this method. 
} 

Natürlich sollten Sie constrain beide T und S, um sicherzustellen, dass T auf S. umgewandelt werden können

Verwandte Themen