ホームページ  >  記事  >  バックエンド開発  >  Go で型アサーションを使用して *os.PathError から特定の情報にアクセスするにはどうすればよいですか?

Go で型アサーションを使用して *os.PathError から特定の情報にアクセスするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-03 19:20:29610ブラウズ

How do you use type assertion to access specific information from an *os.PathError in Go?

Go の err.(*os.PathError) について

有効なエラーについて Go ドキュメントを調べているときに、「err」という行に遭遇しました。 .(*os.PathError)" と表示され、それが何を意味するのか疑問に思いました。

err.(*os.PathError) とは何ですか?

os.Create 関数は、 error を 2 番目の戻り値として使用し、エラー インターフェイス { Error() string } を実装します。 os.Create でファイルを作成しようとすると、問題が発生するとエラーが返されます。

具体的には、デバイスに空き領域が残っていないときにファイルを作成しようとすると、os パッケージエラー実装として *os.PathError を返します。 Error() メソッド以外のエラーに関する追加情報にアクセスするには、それを変換する必要があります。

Type Assertion

ステートメント「e, ok := err. (os.PathError)」は型アサーションを実行します。インターフェース値 err に具体的なタイプとして os.PathError が含まれているかどうかをチェックします。存在する場合、os.PathError を e に割り当て、ok を true に設定します。それ以外の場合は、os.PathError のゼロ値 (nil) を e に割り当て、ok を false に設定します。

Usage

指定されたコード、デバイスにスペースが残っていないことを示す ENOSPC エラー コードを探しています。 os.Create によって返されたエラーがこのコードと一致する場合は、クリーンアップ タスクを実行してスペースを解放し、ファイルの再作成を試みることができます。

以上がGo で型アサーションを使用して *os.PathError から特定の情報にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。