L'éditeur PHP Xinyi vous présente les types de sacs en golang. En golang, le type bag fait référence à une structure de données utilisée pour stocker une collection d'éléments. Contrairement à d’autres structures de données, les éléments d’un sac peuvent apparaître de manière répétée et l’ordre n’a pas d’importance. Cela signifie que le type de sac est très utile dans les situations où l'ordre n'est pas requis, comme pour calculer la fréquence des éléments ou déterminer si un élément existe. Il convient de noter que le type de sac et le type de chaîne ne correspondent pas dans Golang, vous devez donc faire attention aux problèmes de conversion de type lors de l'utilisation.
Ne me demandez pas pourquoi je fais ça, dites-moi simplement comment c'est possible :
Erreur gopls : incompatibilité de chaîne et de type de chaîne
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 } } }
Au début, je pensais que le serveur lsp était stupide, mais il s'est avéré que ce n'était pas le cas.
Une erreur s'est produite : incompatibilité de chaîne et de type de chaîne
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
J'ai cherché sur Google et dans les résultats de recherche, j'ai eu une erreur uniquement lors de la comparaison des pointeurs avec des chaînes... Juste là, tapez tout va bien, ou je me trompe.
La signature de votre méthode devrait être func (mapsi Mapsi2[T]) SetValue(key string, value T)
.
Ce n'est pas lié à votre problème de compilation, mais veuillez noter :
Vue sur l'aire de jeux : //m.sbmmt.com/link/6934456f54af5ab56c6f347c6427afeb一个>.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!