encoding/csvのゴラン文書では、WriteAll
はWrite
に指定されたCSVレコードが記載されており、基礎となるライターのFlush
を呼び出します。/csv:WriteAll()でError()を使用する必要がありますか?
ここで、WriteAll
のエラーを返すか、Error()
の方法でエラーを検出するのか混乱しています。理由を説明しましょう。
Write
はerror
を返します。これにより、戻り値に基づいてエラーを検出できると考えられます。Flush
はerror
を返しません。ドキュメントでは、「フラッシュ中にエラーが発生したかどうかを確認するには、エラーを呼び出します。WriteAll
エラー処理については何も言及していませんが、error
を返し、Write
とFlush
の両方を実行すると記載しています。ドキュメントは、このように書き例が含ま:w := csv.NewWriter(os.Stdout) w.WriteAll(records) // calls Flush internally if err := w.Error(); err != nil { log.Fatalln("error writing csv:", err) }
Error()
自体を述べた:「エラーが前書き込みまたはフラッシュ中に発生したエラーを報告します。」 (強調する鉱山)。
私はコードを見て、私が慣れていないいくつかのフェナニガンを見たので、私はその問題をSOに変えています。
これはどちらですか?返されたerror
を見てください。 w.Error()
を使用する必要がありますか?私は両方を使うべきですか?違いは何ですか?
Write/WriteAllによって返されたエラーを無視しないでください。/csvをエンコードする例は説明的です。 – Sridhar
これは公式ドキュメントにあります! – FrontierPsycho