docs(note): 重组笔记目录结构并新增 MySQL JOIN 实验笔记

- 随手记笔记按主题迁移至 note/资源/(DevOps、数据库、编程)
- Windows使用、go errors 等笔记迁移时同步更名为规范标题
- 新增 MySQL 空表 JOIN 导致排序索引失效实验笔记
- 移除 go操作excel 笔记
This commit is contained in:
张育新
2026-08-28 16:48:16 +08:00
parent 9714bd4ab5
commit 20fa8f4d5a
7 changed files with 286 additions and 83 deletions
+22
View File
@@ -0,0 +1,22 @@
## `errors.AsType`
> *用泛型把* `errors.As` *的“先声明变量再传指针”简化为“直接返回* `(E, bool)`*”,是* `errors.As` *的语法糖升级*
**使用场景:**
- 与 `errors.As` 完全相同(按类型提取错误),但写起来更简洁
- 由于类型参数 `E` 必须是 `error` 接口的实现类型,**能在编译期避免 `errors.As` 那种“传错指针类型导致运行时 panic”的问题**
```go
// 传统 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
}
```