Go教程技术文章
-
Go 的 string 不保证天然是合法 UTF-8。用 unicode/utf8.ValidString 在入库前做字节级拦截,再叠加长度、格式和数据库字符集检查,才能避免坏编码混入数据层。272 收藏 -
Go strings.Cut 返回的空字符串不一定代表分隔符缺失,真正的判断依据是 found。本文用边界输入和可复用代码区分空字段与缺失分隔符。272 收藏 -
讲清 Go 1.22+ http.ServeMux 的父子树路由、方法匹配、具体性优先、通配符、405 与尾斜杠边界。270 收藏 -
讲清 Go errors.As 如何穿过 %w 包装错误提取自定义类型,说明指针目标的正确写法、false 与 panic 的边界,以及错误链在业务工作流中的接入方式。263 收藏 -
Go 的 hash.Hash.Sum 会把当前摘要追加到传入切片,并且不改变哈希状态。本文用 sha256 示例说明 nil、前缀、容量复用和继续 Write 的正确写法。263 收藏 -
用 sql.NullString 扫描 nullable 文本,清楚区分数据库 NULL、空字符串和普通字符串,并说明批量读取、写回和接口映射中的常见坑。260 收藏 -
Go encoding/csv 读取 CSV 时,应先消费并验证表头,再用 FieldsPerRecord 固定数据行列数。本文给出跳过表头、识别 ErrFieldCount 与 ParseError、在入库前完成结构校验的实现方法。259 收藏 -
Go slices.Compact 只压缩连续重复值,并会清理新长度之后的尾部。本文结合源码说明 clear 的内存语义、原地复用边界和安全使用方式。254 收藏 -
讲清 Go fs.WalkDir 遇到权限错误时的回调语义,用 errors.Is 判断权限并返回 fs.SkipDir,保留其他目录继续遍历。253 收藏 -
围绕 Go testing.T.TempDir 讲清并行子测试的目录隔离、父测试共享只读夹具、自动清理和 GOTMPDIR 排查边界。251 收藏 -
讲清 Go slices.SortStableFunc 按团队、优先级等多个字段排序时的稳定比较器写法,说明比较结果、降序参数、等价元素和常见溢出误区。250 收藏 -
Go os/exec 启动命令后,相对路径默认跟随子进程工作目录。本文用 Cmd.Dir 设置独立目录,并区分目录不存在、命令失败和结果文件落点错误等常见问题。249 收藏 -
Go archive/tar 打包目录时,使用 filepath.Rel 计算相对路径,再覆盖 Header.Name 并统一斜杠,就能控制 tar 内部目录层级,同时区分归档路径与解压目标路径。248 收藏 -
Go 里 crypto/sha256.New 和 sha256.Sum256 都能计算 SHA-256,但适用场景不同:一次性 []byte 直接用 Sum256,文件、网络流和分块数据用 New。本文用代码、返回类型和边界清单说明如何选择。247 收藏 -
用 Go io/fs 的 fs.FS 与 fs.WalkDir 统一遍历磁盘目录、嵌入资源和测试文件系统,掌握 slash 路径、DirEntry、错误处理、符号链接与 fs.Sub 的边界。247 收藏