Heim >Backend-Entwicklung >Golang >Wie kann ich den Fehler „V kann nicht abgeleitet werden' beheben, wenn ich generische Schnittstellen in Go verwende?

Wie kann ich den Fehler „V kann nicht abgeleitet werden' beheben, wenn ich generische Schnittstellen in Go verwende?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-11 07:19:11454Durchsuche

How Can I Resolve the

Ableiten von Typparametern in Go: Beheben des Fehlers „V kann nicht abgeleitet werden“

Beim Umgang mit generischen Schnittstellen, die verschiedene Typen unterstützen, kann es sein, dass Sie auf die Fehlermeldung „V kann nicht abgeleitet werden“ stoßen. Fehler in Go, insbesondere in den Versionen 1.20 und niedriger. So können Sie dieses Problem angehen:

Go 1.21 und höher

Für Go 1.21 und höher wird der Fehler behoben, ohne dass Typbeschränkungen explizit angegeben werden. Die Typinferenz berücksichtigt jetzt Methodentypen, wenn einer Schnittstelle Werte zugewiesen werden, sodass der Compiler Typargumente aus den bereitgestellten Methoden ableiten kann.

Go 1.20 und niedriger

In Go 1.20 und früher wird der Typ abgeleitet von V aus dem konkreten Typ, der die Einschränkung ConfigStorage[K, V] implementiert, wurde nicht unterstützt. Um den Fehler zu beheben, müssen Sie die Typparameter beim Aufruf der GetValue-Funktion explizit angeben, etwa so:

// Specify string for K and string for V
GetValue[string, string](fileStorage, "key")

Mit dieser Änderung kann der Compiler jetzt den Typ von V basierend auf den bereitgestellten Typen für ableiten K und die Implementierung der Set-Methode.

Das obige ist der detaillierte Inhalt vonWie kann ich den Fehler „V kann nicht abgeleitet werden' beheben, wenn ich generische Schnittstellen in Go verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn