Verstehen des Byte-Zuweisungsfehlers: []Byte kann nicht zu String zugewiesen werden
Bei Ihrem Versuch, Dateien in einem Ordner zu lesen, ist der Fehler aufgetreten „[]Byte kann nicht in Mehrfachzuweisung an z (Typzeichenfolge) zugewiesen werden“, wenn versucht wird, den Inhalt einer Datei zu lesen. Sehen wir uns den Grund für diesen Fehler genauer an.
Mehrfachzuweisung verstehen
Wenn mehreren Variablen Werte in einer einzigen Zeile zugewiesen werden, wie in Ihrem Code:
z, err := ioutil.ReadFile(z)
Jede Variable auf der linken Seite des Zuweisungsoperators erhält einen entsprechenden Wert, der von der Funktion zurückgegeben wird. In diesem Fall gibt die Funktion ioutil.ReadFile zwei Werte zurück: []Byte (Binärdaten) und Fehler.
Zuweisen von Bytes zu Zeichenfolgen
Der problematische Teil ist der Versuch um das von ioutil.ReadFile zurückgegebene []Byte (Binärdaten) der z-Variablen zuzuweisen, die als Zeichenfolge deklariert ist. Hier tritt der Fehler auf, weil z einen String-Wert und keine Binärdaten erwartet.
Lösung
Um diesen Fehler zu beheben, haben Sie zwei Möglichkeiten:
buf, err := ioutil.ReadFile(z)
if err != nil {
log.Fatal(err)
}
z = string(buf)
var z []byte
z, err := ioutil.ReadFile(z)
Arbeiten mit Binärdaten
Während die Konvertierung von Binärdaten in Zeichenfolgen möglich ist, ist es oft vorzuziehen, direkt mit zu arbeiten Binärdaten selbst. Dies vermeidet unnötige Konvertierungen und bewahrt das ursprüngliche Format der Daten.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3