Maison >développement back-end >Golang >Comment réparer \'opération invalide : new_str str[i 1] (types incompatibles, chaîne et octet)\' dans Golang ?

Comment réparer \'opération invalide : new_str str[i 1] (types incompatibles, chaîne et octet)\' dans Golang ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-03 13:38:30612parcourir

How to Fix

Incompatibilité de types dans Golang : résolution de l'erreur (chaîne et octet de types incompatibles)

Dans Golang, vous pouvez rencontrer l'erreur « opération invalide : new_str str[i 1] (chaîne et octet de types incompatibles)" en raison d'une incompatibilité de type. Cette erreur se produit lors de la tentative de concaténation d'un octet (str[i 1]) avec une chaîne (new_str). Go impose des conversions de types explicites.

Dans l'exemple de code fourni, cette erreur se produit dans les fonctions g et f :

  • Dans g, la concaténation de new_str et str[i 1] nécessite une conversion de type. La syntaxe correcte est new_str = new_str string(str[i 1]).
  • Dans f, la concaténation de f(g(str)) et str[0] nécessite également une conversion de type. Le code corrigé est return f(g(str)) string(str[0]).

En convertissant explicitement les octets en chaînes, vous pouvez résoudre l'incompatibilité de type et éviter l'erreur. Voici un extrait de code révisé avec les conversions nécessaires :

<code class="go">package main

func g(str string) string {
    var i = 0
    var new_str = ""
    for i < len(str)-1 {
        new_str = new_str + string(str[i+1])
        i = i + 1
    }
    return new_str
}

func f(str string) string {
    if len(str) == 0 {
        return ""
    } else if len(str) == 1 {
        return str
    } else {
        return f(g(str)) + string(str[0])
    }
}

func main() {
    // ...
}</code>

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!

Déclaration:
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