Ich habe ein Problem mit folgendem Code:
func generic1<T>(name : String){
}
func generic2<T>(name : String){
generic1<T>(name)
}
Das Ergebnis generic1 (name) führt zu einem Compilerfehler. "Eine generische Funktion kann nicht explizit spezialisiert werden."
Gibt es eine Möglichkeit, diesen Fehler zu vermeiden? Ich kann die Signatur der generic1-Funktion nicht ändern, daher sollte sie (String) -> Void sein
Tüberhaupt in verwendet generic1()? Wie würden Sie diese Funktion aufrufen , damit der Compiler auf den Typ schließen kann?
func foo<T>() -> T { ... }Das macht etwas mit einem Objekt tvom Typ Tund der Rückgabe t. Eine explizite Spezialisierung Twürde es ermöglichen t1, eingegriffen zu werden var t1 = foo<T>(). Ich wünschte, es gäbe auch eine Möglichkeit, Funktionen auf diese Weise aufzurufen. C # erlaubt es