Files
lab/note/资源/编程/Golang/标准库.md
T
张育新 20fa8f4d5a docs(note): 重组笔记目录结构并新增 MySQL JOIN 实验笔记
- 随手记笔记按主题迁移至 note/资源/(DevOps、数据库、编程)
- Windows使用、go errors 等笔记迁移时同步更名为规范标题
- 新增 MySQL 空表 JOIN 导致排序索引失效实验笔记
- 移除 go操作excel 笔记
2026-08-28 16:48:16 +08:00

748 B
Raw Blame History

errors.AsType

用泛型把 errors.As 的“先声明变量再传指针”简化为“直接返回 (E, bool)”,是 errors.As 的语法糖升级

使用场景:

  • 与 errors.As 完全相同(按类型提取错误),但写起来更简洁
  • 由于类型参数 E 必须是 error 接口的实现类型,能在编译期避免 errors.As 那种“传错指针类型导致运行时 panic”的问题
// 传统 errors.As:需要先声明变量
var mysqlErr *mysql.MySQLError
if errors.As(err, &mysqlErr) {
    return true, mysqlErr.Number
}

// errors.AsType(Go 1.26+):无需预先声明变量
if mysqlErr, ok := errors.AsType[*mysql.MySQLError](err); ok {
    return true, mysqlErr.Number
}