Maison  >  Article  >  développement back-end  >  Comment résoudre l'erreur « chaîne et octet de types incompatibles » dans Golang ?

Comment résoudre l'erreur « chaîne et octet de types incompatibles » dans Golang ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-27 20:39:30268parcourir

How to Resolve the

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

Le message d'erreur (chaîne et octet de types incompatibles) indique une disparité entre les types attendus et fournis dans une opération donnée. Dans Golang, l'erreur se produit lors de la tentative de concaténation d'une chaîne avec un octet, principalement en raison des différents types de données impliqués.

En analysant le code fourni, nous pouvons identifier les lignes problématiques :

<code class="go">new_str = new_str + str[i + 1]</code>

et

<code class="go">return f(g(str)) + str[0]</code>

Le problème se pose car str[i 1] et str[0] sont des octets, tandis que new_str et f(g(str)) sont des chaînes. Le typage strict Golang nécessite des conversions explicites lorsque vous travaillez avec différents types de données.

Pour résoudre cet écart, nous devons convertir l'octet (caractère unique) du tableau str en une chaîne avant de le concaténer. Ceci peut être réalisé en utilisant la fonction de conversion de chaîne comme suit :

<code class="go">new_str = new_str + string(str[i + 1])</code>
<code class="go">return f(g(str)) + string(str[0])</code>

En incorporant ces conversions, nous nous assurons que les types correspondent et que les opérations sont valides.

Voici un exemple pour démontrer le code corrigé :

<code class="go">package main

import "fmt"

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 main() {
    fmt.Println(g("fruits"))
}</code>

En convertissant les octets en chaînes aux points de concaténation, nous éliminons avec succès l'erreur (types incompatibles chaîne et octet) et garantissons des opérations valides.

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