構文更新: errors.AsType を使用した型安全なエラーのアンラッピング

errors.Aserrors.AsType に置き換えることができる用法を報告します。これは、Go 1.26 で導入されたジェネリック関数で、型安全な方法でエラーをアンラップし、型付きの結果を直接返します。

別の変数を宣言してそれへのポインタを渡す代わりに、errors.AsType は型付きの結果を直接返します。 この方法によりコードは短くなり、読みやすくなり、不正なポインタ使用に関連する一般的なミスを防ぎます。

例:


var cfgErr ConfigError        // 不正: 値ではなくポインタ
if errors.As(err, &cfgErr) {  // パニック
    fmt.Println("フィールドでのコンフィグエラー:", cfgErr.Field)
} else {
    fmt.Println("errors.As: ConfigError を検出できませんでした")
}

ここでは、errors.As は、事前に宣言された変数とその変数へのポインタを必要とします。

コードを簡素化し、型安全性を向上させるために、'errors.AsType' に置き換える クイックフィックスを使用してください。

クイックフィックス適用後:


if cfgErr, ok := errors.AsType[*ConfigError](err); ok {
    fmt.Println("Config error on field:", cfgErr.Field)
} else {
    fmt.Println("errors.As: could not detect ConfigError")
}

この形式は、単一の式でエラーをアンラップし、正しく型付けされた値を返し、手動でのポインタ処理を不要にします。