So beheben Sie den Golang-Fehler: Ungültiger Vorgang: „x' (Operator „y') „z' (nicht übereinstimmende Typen T und U)

PHPz
Freigeben: 2023-08-18 22:35:07
Original
986 Leute haben es durchsucht

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

So beheben Sie einen Golang-Fehler: Ungültige Operation: 'x' (Operator 'y') 'z' (nicht übereinstimmende Typen T und U)

Beim Programmieren mit Golang stoßen wir häufig auf verschiedene Fehler. Einer der häufigsten Fehler ist „ungültige Operation: ‚x‘ (Operator ‚y‘) ‚z‘ (nicht übereinstimmende Typen T und U)“. Dieser Fehler tritt normalerweise auf, wenn wir versuchen, einen Operator zwischen inkompatiblen Datentypen zu verwenden.

Um das Problem besser zu verstehen, schauen wir uns ein paar Codebeispiele an:

Beispiel 1:

package main

import "fmt"

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

    result := x + y

    fmt.Println(result)
}
Nach dem Login kopieren

Dieser Code versucht, eine Ganzzahl und eine Zeichenfolge hinzuzufügen und das Ergebnis dann in einer Variablen zu speichern. Da der Integer-Typ und der String-Typ jedoch nicht kompatibel sind, meldet der Compiler einen Fehler: „Ungültige Operation: x + y (nicht übereinstimmende Typen int und string)“.

Um diesen Fehler zu beheben, müssen wir sicherstellen, dass der Operator für den Datentyp geeignet ist, mit dem wir arbeiten. In diesem Beispiel müssen wir die Ganzzahl in eine Zeichenfolge konvertieren und dann die Zeichenfolgenverkettungsoperation ausführen. Der feste Code sieht so aus:

package main

import "fmt"

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

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

    fmt.Println(result)
}
Nach dem Login kopieren

Beispiel 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)
}
Nach dem Login kopieren

Im obigen Beispiel versuchen wir, eine Ganzzahl und einen String hinzuzufügen und das Ergebnis dann in einer Variablen zu speichern. Da der Integer-Typ und der String-Typ jedoch nicht kompatibel sind, meldet der Compiler einen Fehler: „Ungültiger Vorgang: x.age + y (nicht übereinstimmende Typen int und string)“.

Um diesen Fehler zu beheben, müssen wir die Ganzzahl in eine Zeichenfolge konvertieren und dann die Zeichenfolgenverkettung durchführen. Der feste Code sieht so aus:

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)
}
Nach dem Login kopieren

Anhand der beiden obigen Beispiele können wir sehen, dass eine übliche Methode zur Behebung dieses Fehlers darin besteht, den Datentyp vor der Manipulation mit einer geeigneten Funktion zu konvertieren. Hier haben wir die Funktion fmt.Sprintf verwendet, um eine Ganzzahl in eine Zeichenfolge umzuwandeln.

Zusammenfassend lässt sich sagen, dass wir beim Auftreten des Golang-Fehlers „ungültige Operation: ‚x‘ (Operator ‚y‘) ‚z‘ (nicht übereinstimmende Typen T und U)“ prüfen sollten, ob der Datentyp zwischen dem Operator und dem Operanden übereinstimmt . Wenn es nicht übereinstimmt, müssen wir den Datentyp mit der entsprechenden Funktion konvertieren, um die entsprechende Operation auszuführen. Ich hoffe, dieser Artikel kann Ihnen helfen, diesen Fehler besser zu beheben und Ihre Fähigkeit zum Schreiben von Golang-Code zu verbessern.

Das obige ist der detaillierte Inhalt vonSo beheben Sie den Golang-Fehler: Ungültiger Vorgang: „x' (Operator „y') „z' (nicht übereinstimmende Typen T und U). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!