Heim >Backend-Entwicklung >Golang >Wie gehe ich mit der Rückgabe von Nullwerten für generische Typen in Go um?
Standardwerte für generische Typen zurückgeben
In Go erscheint beim Versuch die Anweisung „Nil kann nicht als T-Wert in der Rückgabeanweisung verwendet werden“. Gibt Null für einen generischen Typ zurück. Dies liegt daran, dass Null nicht für alle Typen ein gültiger Wert ist. Zum Beispiel im bereitgestellten Code:
func (list *mylist[T]) pop() T {...} func (list *mylist[T]) getfirst() T {...}
Wenn T vom Typ int ist, gibt es keinen sinnvollen Nullwert. Ebenso ist Null für Strukturen kein gültiger Wert.
Stattdessen sollten Sie den Nullwert für den angegebenen Typ verwenden. Der Nullwert ist:
So können Sie den Nullwert mit einer generischen Funktion zurückgeben:
func getZero[T any]() T { var result T return result }
Diese Funktion gibt den zurück Nullwert für jeden Typ, der als Typargument verwendet wird.
Das Testen der Funktion liefert die folgenden Ergebnisse:
int 0 string "" image.Point (0,0) *float64 nil
Wie Sie sehen können, werden für verschiedene Typen entsprechende Nullwerte zurückgegeben, was eine sinnvoller Standardwert für generische Funktionen und Typen.
Das obige ist der detaillierte Inhalt vonWie gehe ich mit der Rückgabe von Nullwerten für generische Typen in Go um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!