Maison > développement back-end > Golang > Peut-être que c'est un sac en golang (tapez la chaîne et la chaîne ne correspondent pas)

Peut-être que c'est un sac en golang (tapez la chaîne et la chaîne ne correspondent pas)

WBOY
Libérer: 2024-02-09 08:06:18
avant
423 Les gens l'ont consulté

也许是 golang 中的 bag(类型字符串和字符串不匹配)

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.

Contenu de la question

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
        }
    }
}
Copier après la connexion

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
Copier après la connexion

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.

Solution de contournement

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 :

  • Vous souhaiterez peut-être utiliser un récepteur de pointeur pour que les modifications persistent au-delà des appels de méthode
  • Vous souhaiterez peut-être également gérer le cas où la clé n'est pas trouvée

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!

Étiquettes associées:
lsp
source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal