Heim > Backend-Entwicklung > Golang > Wie behebe ich den Fehler „nicht übereinstimmende Typenzeichenfolge und Byte' in Golang?

Wie behebe ich den Fehler „nicht übereinstimmende Typenzeichenfolge und Byte' in Golang?

Patricia Arquette
Freigeben: 2024-10-27 20:39:30
Original
312 Leute haben es durchsucht

How to Resolve the

Nicht übereinstimmende Typen in Golang: Beheben des Fehlers (nicht übereinstimmende Typen, Zeichenfolge und Byte)

Die Fehlermeldung (nicht übereinstimmende Typen, Zeichenfolge und Byte) zeigt an eine Diskrepanz zwischen den erwarteten und den bereitgestellten Typen in einem bestimmten Vorgang. In Golang tritt der Fehler auf, wenn versucht wird, eine Zeichenfolge mit einem Byte zu verketten, hauptsächlich aufgrund der unterschiedlichen Datentypen.

Durch die Analyse des bereitgestellten Codes können wir die problematischen Zeilen identifizieren:

<code class="go">new_str = new_str + str[i + 1]</code>
Nach dem Login kopieren

und

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

Das Problem entsteht, weil str[i 1] und str[0] Bytes sind, während new_str und f(g(str)) Zeichenfolgen sind. Die strikte Golang-Typisierung erfordert explizite Konvertierungen, wenn mit verschiedenen Datentypen gearbeitet wird.

Um diese Diskrepanz zu beheben, müssen wir das Byte (einzelnes Zeichen) aus dem str-Array in eine Zeichenfolge konvertieren, bevor wir es verketten. Dies kann mit der String-Konvertierungsfunktion wie folgt erreicht werden:

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

Durch die Einbindung dieser Konvertierungen stellen wir sicher, dass die Typen übereinstimmen und die Operationen gültig sind.

Hier ist ein Beispiel um den korrigierten Code zu demonstrieren:

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

Durch die Konvertierung der Bytes in Strings an den Verkettungspunkten beseitigen wir erfolgreich den Fehler (nicht übereinstimmende Typen String und Byte) und stellen gültige Operationen sicher.

Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „nicht übereinstimmende Typenzeichenfolge und Byte' in Golang?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage