php エディター Zimo、こんにちは!ご指摘のビルド エラーの問題については、「エラー。エラーではないはずです」エラーにはいくつかの理由が考えられます。まず、このエラーは通常、ビルド中に間違った 2 番目の引数が使用されたことを意味します。 2 番目のパラメータが正しく、必要な型と一致していることを確認する必要があります。次に、テストで間違ったデータを使用している可能性があります。テスト データを注意深く確認し、予想される形式と要件を満たしていることを確認してください。最後に、このエラーはフレームワークまたはライブラリの問題によって発生する可能性もあります。この場合、解決策を見つけるために関連ドキュメントを参照するか、コミュニティからの支援を求めることをお勧めします。これらのヒントがお役に立てば幸いです。
次のテストを考えてみましょう:
リーリーこのテストを実行すると、ビルド エラー 秒パラメータがエラーに返されます。 *error
であってはなりません。
遊園地に行きます
ただし、まったく同じコードを main
で実行すると、プログラムは問題なく実行されます。
リーリー
この動作は、どちらも go 1.20 を使用している go プレイグラウンドとローカル開発環境で発生しています。
これは go のバグですか?
###編集###
を作成することで、テストでのビルド失敗の問題を解決できました。
import ( "errors" "fmt" "testing" ) func testerror(t *testing.t) { err := &myerror{} var target error fmt.println(errors.as(err, &target)) } type myerror struct{} func (err *myerror) error() string { return "oops!" }
解決策このエラーは、go test コマンドは、
go vet を自動的に実行して、重大な問題を報告します。
go build コマンドは、
go vet コマンドを実行しません。
この警告は Go のバグではありません。
error
インターフェイスを満たすことがすでにわかっているため、2 番目の引数として*error を指定して
errors.As を呼び出すことは意味がありません。あなたはほぼ確実に何か間違ったことをしています。
以上がテストの 2 番目のパラメーターに対して「errors.As should not be *error」ビルド エラーのみが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。