Maison > développement back-end > Golang > le corps du texte

Comment corriger l'erreur Golang : opération non valide : 'x' (opérateur 'y') 'z' (types T et U incompatibles)

PHPz
Libérer: 2023-08-18 22:35:07
original
961 Les gens l'ont consulté

如何修复golang报错:invalid operation: 'x' (operator 'y') 'z' (mismatched types T and U)

Comment corriger l'erreur golang : opération invalide : 'x' (opérateur 'y') 'z' (types T et U incompatibles)

Lors de la programmation avec golang, nous rencontrons souvent diverses erreurs. L'une des erreurs courantes est « opération invalide : 'x' (opérateur 'y') 'z' (types T et U incompatibles) ». Cette erreur se produit généralement lorsque nous essayons d'utiliser un opérateur entre des types de données incompatibles.

Pour mieux comprendre le problème, regardons quelques exemples de code :

Exemple 1 :

package main

import "fmt"

func main() {
    var x int = 5
    var y string = "hello"

    result := x + y

    fmt.Println(result)
}
Copier après la connexion

Ce code tente d'ajouter un entier et une chaîne, puis de stocker le résultat dans une variable. Cependant, comme le type entier et le type chaîne sont incompatibles, le compilateur signalera une erreur : "opération invalide : x + y (types int et chaîne incompatibles)".

Pour corriger cette erreur, nous devons nous assurer que l'opérateur doit être adapté au type de données sur lequel nous opérons. Dans cet exemple, nous devons convertir l'entier en chaîne, puis effectuer l'opération de concaténation de chaîne. Le code fixe ressemble à ceci :

package main

import "fmt"

func main() {
    var x int = 5
    var y string = "hello"

    result := fmt.Sprintf("%d%s", x, y)

    fmt.Println(result)
}
Copier après la connexion

Exemple 2 :

package main

import "fmt"

type Employee struct {
    name string
    age  int
}

func main() {
    var x Employee = Employee{name: "John", age: 30}
    var y string = "30"

    result := x.age + y

    fmt.Println(result)
}
Copier après la connexion

Dans l'exemple ci-dessus, nous essayons d'ajouter un entier et une chaîne, puis de stocker le résultat dans une variable. Cependant, comme le type entier et le type chaîne sont incompatibles, le compilateur signalera une erreur : "opération invalide : x.age + y (types int et chaîne incompatibles)".

Afin de corriger cette erreur, nous devons convertir l'entier en chaîne, puis effectuer l'opération de concaténation de chaîne. Le code corrigé ressemble à ceci :

package main

import "fmt"

type Employee struct {
    name string
    age  int
}

func main() {
    var x Employee = Employee{name: "John", age: 30}
    var y string = "30"

    result := fmt.Sprintf("%d%s", x.age, y)

    fmt.Println(result)
}
Copier après la connexion

À travers les deux exemples ci-dessus, nous pouvons voir qu'une manière courante de corriger cette erreur consiste à utiliser une fonction appropriée pour convertir le type de données avant de le manipuler. Ici, nous avons utilisé la fonction fmt.Sprintf pour convertir un entier en chaîne.

Pour résumer, lorsque nous rencontrons une erreur Golang "opération invalide : 'x' (opérateur 'y') 'z' (types T et U incompatibles)", nous devons vérifier si le type de données entre l'opérateur et l'opérande correspond . S'il ne correspond pas, nous devons utiliser la fonction appropriée pour convertir le type de données afin d'effectuer l'opération correspondante. J'espère que cet article pourra vous aider à mieux corriger cette erreur et à améliorer votre capacité à écrire du code Golang.

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!

source:php.cn
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!