Erreur d'assertion de type : conversion de l'interface en chaîne dans Go
Dans Go, une valeur d'interface peut contenir des valeurs de différents types. Lorsque vous devez convertir une valeur d'interface en un type spécifique, vous utilisez une assertion de type. Cela se fait en utilisant la syntaxe x.(T), où x est la valeur de l'interface et T est le type de cible.
Cependant, lorsque vous tentez de convertir une valeur d'interface en chaîne, vous pouvez rencontrer une erreur :
invalid operation: data + "\n" (mismatched types interface {} and string)
Cette erreur se produit lorsque la valeur stockée dans l'interface n'est pas une chaîne. Pour résoudre ce problème, nous devons utiliser une assertion de type pour vérifier que la valeur est bien une chaîne et effectuer la conversion de type correcte.
Dans votre code, vous avez apporté la modification suivante :
data := <-myEventChan s:= data.(string) + "\n"
Cette assertion de type vérifie si la valeur reçue de myEventChan est une chaîne. Si tel est le cas, il le convertit en chaîne et ajoute un caractère de nouvelle ligne. Sinon, cela paniquera au moment de l'exécution.
Remarques supplémentaires :
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!