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 t
vom Typ T
und der Rückgabe t
. Eine explizite Spezialisierung T
wü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