Ich versuche, mithilfe von Generika eine Funktion zu erstellen, die ein Interface-Slice in ein Slice vom Typ t umwandelt.
Ich habe mir Folgendes ausgedacht:
func convertInterfaceArray[T any](input []any, res []T) { for _, item := range input { res = append(res, item.(reflect.TypeOf(res[0]))) } }
Dies wird jedoch nicht kompiliert. Aber Sie verstehen, worauf es ankommt. t kann von jedem Typ sein, ich habe ein Eingabesegment vom Typ []any, das in []t konvertiert werden muss
Stellen Sie den Wert des Typs t
sicher. Keine Reflexion erforderlich.
for _, item := range input { res = append(res, item.(T)) }
https://www.php.cn/link/f2a13eeae490ef805070086405e26087
Das obige ist der detaillierte Inhalt vonWie verwende ich die Laufzeittypreflexion zum Konvertieren von Typen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!