ファイル読み取り時のエラー処理:「z (文字列型) に []byte を割り当てることができません」への対処
内のファイルを読み取ろうとしたときフォルダーの場合、複数の割り当てに関連して問題が発生します。このエラーを調査して解決策を提供しましょう:
コードは、「ドキュメント」フォルダー内のファイルをリストし、各ファイルの内容を読み取ろうとします:
files, _ := ioutil.ReadDir("documents/") for _, f := range files { z := "documents/" + f.Name() fmt.Println(z) z, err := ioutil.ReadFile(z) }
エラーが発生するのは、ioutil .ReadFile 関数は、[] バイトのスライスとしてのファイルの内容と潜在的なエラーの 2 つの値を返します。ただし、コードは両方の値を文字列として宣言されている同じ変数 z に割り当てようとしています。
この問題を解決するには、戻り値を正しく処理します。
buf, err := ioutil.ReadFile(z) if err != nil { log.Fatal(err) } z = string(buf)
これ文字列への変換を潜在的なエラー処理から分離し、型の不一致の問題を確実に回避します。
あるいは、文字列への変換を回避するには、バイナリ データ表現として buf を直接操作して、不必要な処理を減らすことを検討してください。コンバージョンが増加し、場合によっては効率が向上する可能性があります。
以上があなたの記事に適した質問ベースのタイトルをいくつか紹介します。 * ファイル読み取りエラー: []byte を文字列に代入できないのはなぜですか? * Go エラー: 「[]byte を z (文字列型) に割り当てることはできません」 - How to Hの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。