Heim > Artikel > Backend-Entwicklung > Vielleicht Bag in Golang (Typ string und string stimmen nicht überein)
PHP-Redakteur Xinyi stellt Ihnen die Taschentypen in Golang vor. In Golang bezieht sich der Bag-Typ auf eine Datenstruktur, die zum Speichern einer Sammlung von Elementen verwendet wird. Im Gegensatz zu anderen Datenstrukturen können Elemente in einer Tasche wiederholt vorkommen und die Reihenfolge spielt keine Rolle. Dies bedeutet, dass der Beuteltyp in Situationen sehr nützlich ist, in denen keine Reihenfolge erforderlich ist, z. B. bei der Berechnung der Häufigkeit von Elementen oder bei der Bestimmung, ob ein Element vorhanden ist. Es ist zu beachten, dass der Taschentyp und der String-Typ in Golang nicht übereinstimmen. Daher müssen Sie bei der Verwendung auf Probleme bei der Typkonvertierung achten.
Fragen Sie mich nicht, warum ich das mache, sondern sagen Sie mir einfach, wie es möglich ist:
gopls-Fehler: Zeichenfolge und Zeichenfolgentyp stimmen nicht überein
type mapsi2[t string | int | float32 | float64] struct { keys []string values []t } func (mapsi mapsi2[string]) setvalue(key string, value string) { for i, keymapsi := range mapsi.keys { if key == keymapsi { mapsi.values[i] = value } } }
Zuerst dachte ich, der LSP-Server sei dumm, aber das war nicht der Fall.
Fehler aufgetreten: Zeichenfolge und Zeichenfolgentyp stimmen nicht überein
go run ./cmd/app # devllart/foobarman/src/mapsi src/mapsi/mapsi.go:48:13: invalid operation: key == keyMapsi (mismatched types string and string) make: *** [Makefile:6: run] Error 2
Ich habe gegoogelt und in den Suchergebnissen erhalte ich nur dann eine Fehlermeldung, wenn ich Zeiger mit Zeichenfolgen vergleiche... genau dort, der Typ ist alles in Ordnung, oder ich liege falsch.
Ihre Methodensignatur sollte func (mapsi Mapsi2[T]) SetValue(key string, value T)
lauten.
Hängt nicht mit Ihrem Kompilierungsproblem zusammen, aber bitte beachten Sie:
Auf dem Spielplatz ansehen: https://www.php.cn/link/6934456f54af5ab56c6f347c6427afeb一个>.
Das obige ist der detaillierte Inhalt vonVielleicht Bag in Golang (Typ string und string stimmen nicht überein). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!