TLDR:golangには方法がありますか(非標準的なビットであっても)、特定のパッケージの機能やインポートを「害する」ためです。ポイズニングA GOのパッケージ/機能
より長いバージョン:すべての一般向けの関数が結果を返すリラックスサービス、またはリリーフファイルで宣言された特定のタイプのエラーを記述しています。私が働いている誰かが、別の条件をチェックすることを決定し、その条件が満たされない場合は、このような何かをするまでは、
publicFacingFunc(...) (returnType, error)
これは素晴らしいことだ:コードジェネレータは、このようなインターフェイスのためのコードを生成し
if conditionIsNotMet {
return nil, errors.New(...)
}
コードはコンパイルされますが、エラーが発生した場合、受信したメッセージは文書化されていないランダムな文字列です。したがって、これらのファイルでは、 "errors"と "fmt"パッケージの使用を防ぎたいと思っています。
はい、私は試してみましたが、ファイルの先頭にはぼんやりと警告が表示されていますが、誰も読んでいないようです。
ところで、パブリックエラーにはそれぞれ、これらのファイルの外部にあるそれぞれの「コンストラクタ」があり、私の場合はそれらを使用する必要があります。
私の場合は十分ですが、同じパッケージを複数回インポートすることができますので、このスキームを回避するのはやや簡単です。他の行で '' errors ''を' 'errors''として再宣言するのを防ぐレビュー以外には何もありません –