Fehlerbehandlung beim Lesen von Dateien: Behebung von „[]Byte kann z (Typzeichenfolge) nicht zugewiesen werden“
Beim Versuch, darin enthaltene Dateien zu lesen In einem Ordner tritt ein Problem im Zusammenhang mit der Mehrfachzuweisung auf. Lassen Sie uns diesen Fehler untersuchen und eine Lösung bereitstellen:
Der Code versucht, die Dateien im Ordner „Dokumente“ aufzulisten und dann den Inhalt jeder Datei zu lesen:
files, _ := ioutil.ReadDir("documents/") for _, f := range files { z := "documents/" + f.Name() fmt.Println(z) z, err := ioutil.ReadFile(z) }
Der Fehler tritt auf, weil das ioutil Die Funktion .ReadFile gibt zwei Werte zurück: den Inhalt der Datei als []Byte-Slice und einen möglichen Fehler. Der Code versucht jedoch, beide Werte derselben Variablen z zuzuweisen, die als Zeichenfolge deklariert ist.
Um dieses Problem zu beheben, behandeln Sie die Rückgabewerte korrekt:
buf, err := ioutil.ReadFile(z) if err != nil { log.Fatal(err) } z = string(buf)
Dies trennt die Konvertierung in einen String von der möglichen Fehlerbehandlung und stellt so sicher, dass das Problem der Typinkongruenz vermieden wird.
Alternativ können Sie, um die Konvertierung in einen String zu vermeiden, erwägen, direkt mit dem BUF als Binärdatendarstellung zu arbeiten und unnötige Daten zu reduzieren Konvertierungen und in einigen Fällen möglicherweise eine Effizienzsteigerung.
Das obige ist der detaillierte Inhalt vonHier sind einige fragenbasierte Titel, die zu Ihrem Artikel passen: * Fehler beim Lesen der Datei: Warum kann ich einem String kein []Byte zuweisen? * Go-Fehler: „[]Byte kann z (Typzeichenfolge) nicht zugewiesen werden' – Anleitung zu H. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!