Go教程技术文章
-
Go context.WithCancelCause 能让取消信号继续保持 context.Canceled,同时把超时、依赖失败或主动终止等具体根因沿 context 链路传递给上层。本文用最小示例说明 Err、Cause、父子取消顺序和资源清理边界。431 收藏 -
Go fmt.Errorf 的 %w 能同时保留上下文和底层错误身份,但也会把底层错误纳入接口契约。本文说明包装位置、包边界转换和日志去重策略。431 收藏 -
Go 服务把审计日志同步写进一个文件后,吞吐上不去、磁盘抖动还会拖慢请求。本文用分片队列和批量落盘拆开写入压力,并验证顺序、重放与停机收尾。430 收藏 -
Go SSE 处理器已经 Write,浏览器仍可能迟迟收不到。本文用 ResponseController.Flush、SetWriteDeadline、代理缓冲检查和断连测试拆解完整刷新链路。430 收藏 -
Go generate 之后生成文件被格式化脚本改回旧内容,通常是生成器和外层脚本同时拥有最终写入权。本文用 go/format、临时文件和原子重命名整理一条稳定的生成流水线。430 收藏 -
Go slices.Clone 会复制切片的元素数组,但它是浅拷贝:值类型元素可独立修改,指针、map 或嵌套切片仍需按字段判断是否共享。本文用代码和边界表说明 Clone、copy 与深拷贝的选择。430 收藏 -
用 Go 的 http.Cookie 设置 SameSite、Secure、HttpOnly 和过期时间,解释三种 SameSite 模式、MaxAge 正负值以及从 Set-Cookie 响应头排查属性不生效的方法。430 收藏 -
介绍 Go strconv.AppendInt 拼接数字字段的实用写法,说明缓冲区容量、进制、类型转换、切片返回值和并发复用边界。430 收藏 -
用 Go 的 mime.WordDecoder.DecodeHeader 解码 RFC 2047 邮件主题,区分 Decode 与 DecodeHeader,配置 CharsetReader,并排查未知字符集和地址解析边界。430 收藏 -
Go 测试里 t.Setenv 会注册环境变量清理动作,但它不能与 t.Parallel 放在同一测试流程中。本文用最小示例说明限制原因、子测试边界和稳定的隔离写法。429 收藏 -
用 Go 的 slices.BinarySearchFunc 在结构体切片中按自定义字段查找,重点说明返回下标与 found 的含义、排序契约以及比较器写错时的排查方法。429 收藏 -
Go 用 filepath.Glob 按通配符查找文件时,无匹配不是异常,非法模式才需要处理 error。本文从最小写法出发,说明 filepath.Join、空切片、ErrBadPattern、路径分隔符和递归查找之间的边界。429 收藏 -
用一个有界并发队列讲清 Go sync.Cond 的 Wait、Signal、Broadcast 和 for 条件检查,避免消费者空取与关闭后永久等待。429 收藏 -
用 Go unsafe.Sizeof、Alignof、Offsetof 拆解结构体字段偏移、内部 padding 与尾部对齐,给出字段顺序优化方法和跨架构使用边界。429 收藏 -
讲清 Go database/sql 事务提交失败后的三类状态,给出整笔事务重试、request_id 幂等和提交未知状态查询的实现边界。429 收藏