Go教程
已收录文章:112篇
-
调用 time.Ticker.Stop 后,程序仍可能处理一次已经进入通道的时间值。关键不在于 Stop 会不会清空通道,而在于退出信号、通道消费和任务收尾的顺序。本文用可运行示例拆开这个边界。363 收藏
-
Go 的 log/slog 可以把日志级别过滤交给 HandlerOptions,但固定 Level 与可动态调整的 LevelVar 适用场景不同。本文用 JSONHandler、测试缓冲区和最小示例说明过滤发生在哪里,以及如何验证 DEBUG 是否真的被挡住。228 收藏
-
Go slog.WithGroup 可以把同一请求的字段放进稳定的 JSON 层级,但嵌套组、空组和同名字段处理不清楚时,日志检索仍会混乱。本文用一段可运行示例说明组名、字段覆盖、空组省略和 JSON 验收方法。167 收藏
-
用一个可复现的分片读取场景,说明 os.File.ReadAt 为什么适合并发定位读取,如何用 io.SectionReader 限定区间,以及短读、EOF 和缓冲区复用的验收边界。139 收藏
-
Go SSE 处理器已经 Write,浏览器仍可能迟迟收不到。本文用 ResponseController.Flush、SetWriteDeadline、代理缓冲检查和断连测试拆解完整刷新链路。430 收藏
-
Golang · Go教程 | 2个月前 | golang · https · TLS · Go教程 · 生产运维 · atomic.Value Go HTTPS证书热切换 GetCertificate tls.Certificate 证书轮换Go HTTPS 服务轮换证书时,不必为了替换文件重启进程。本文用 tls.Config.GetCertificate 和 atomic.Value 保存当前证书,演示新连接切换、旧连接保持、加载失败回退与指标核对,给出适合生产灰度的实现边界。267 收藏
-
Golang · Go教程 | 2个月前 | HTTP · 连接池 · Go教程 · 性能排查 · net/http · Go HTTP客户端 连接复用 Transport httptrace Response.BodyGo HTTP 客户端请求量上来后,如果 Response.Body 没有按路径读取并关闭,或每次请求都新建 Transport,连接池就很难稳定复用。本文从一个连接数异常的服务场景出发,用 httptrace 验收复用结果,并给出响应体、Transport 参数和回归检查的落地写法。397 收藏
-
Go 服务写 Cookie 时,HttpOnly、SameSite 和 Secure 不是勾选项,而是分别对应脚本读取、跨站发送和传输加密边界。本文用 net/http 的最小写法说明属性组合、反向代理信任条件和可复查的安全检查。152 收藏
-
Go 的 sync 一次性初始化器适合把稳定结果封装成函数,但初始化失败也会被缓存。本文用配置加载和重试边界说明一次性函数、OnceFunc 与可重试初始化该怎么选。379 收藏
-
Golang · Go问答 | 2个月前 | 工具链 · go语言 · Go教程 · 版本升级 · 代码重构 · Go 1.26 go fix modernizer 代码升级 new 表达式 Go 代码迁移Go 1.26 重写了 go fix,把它从旧式修复命令变成基于 go/analysis 的 modernizer 工具。本文用一个含有可选字段和自定义 newInt 函数的 Go 模块,演示如何预览建议、限定改动范围、检查 go.mod 版本并完成回归。147 收藏
-
Go 1.24 完整支持带类型参数的别名声明。本文用一个从 legacy 包迁移到 collection 包的 Set API,比较 type 定义与 type 别名的差异,说明方法、导出类型、go.mod 版本和工具链兼容边界。335 收藏
-
Golang · Go教程 | 2个月前 | golang · sse · Go教程 · net/http · 接口设计 · HTTP Go SSE FLUSH 流式响应 ResponseControllerGo 的流式响应不是把多次 Write 拼起来就结束了。本文从 http.ResponseController.Flush 入手,做一个可验证的 SSE 示例,解释缓冲何时真正送达、HTTP/2 与代理会带来什么差异,以及客户端断开后如何让 goroutine 和 ticker 及时收口。463 收藏