Go教程技术文章
-
用 bytes.Buffer 解析批量协议时,Reset 可以复用已分配容量,但不会替你维护消息边界。本文用固定长度前缀示例说明读取推进、半包判断、Bytes 切片生命周期和复用检查清单。128 收藏 -
Golang · Go教程 | 5天前 | Go教程 · database/sql · 数据库元数据 · SQL NULL · Go database/sql rows ColumnTypes ColumnType.Length
Go 的 Rows.ColumnTypes 不直接返回 nil 长度,ColumnType.Length 返回 int64 与 ok。本文区分固定长度、无界类型、驱动不支持和业务包装层 nil,并说明如何把长度元数据与 SQL NULL 分开处理。128 收藏 -
用 Go 包装 io.Reader,在不把整文件读入内存的前提下统计上传过程中已经读取的字节数。本文区分 Reader 进度、网络发送和服务端落盘边界,给出并发读取进度、失败重试与未知总大小的处理方式。127 收藏 -
Go filepath.WalkDir 默认不会跟随符号链接。本文用一个目录扫描器说明如何识别链接、保留链接记录,并区分 os.Stat 与 EvalSymlinks 的显式跟随行为。127 收藏 -
介绍 Go testing.T Cleanup 的登记方式、后进先出顺序、父子测试作用域和并行测试中的资源清理边界。127 收藏 -
从切片别名、append 扩容和底层数组保留三个角度,说明 Go slices.Clone 的适用边界,并用可运行示例验证复制后的修改、nil 语义与内存释放判断。126 收藏 -
Golang · Go教程 | 2星期前 | HTTP · go · 连接池 · 性能排查 · net/http · http.server 连接泄漏 Go ConnState StateIdle HTTP长连接
用 http.Server.ConnState 观察 Go HTTP 连接从 StateNew 到 StateClosed 的状态变化,区分慢请求、Keep-Alive 和未收尾连接,并给出计数、超时与复核方法。125 收藏 -
用一个配置加载器看懂 Go 一次性初始化的惰性加载、错误复用和并发安全边界,给出可验证的最小实现与避坑清单。125 收藏 -
用 Go 的 net/http.ServeContent 搭一个可验证的文件下载接口,拆清 Range、If-Modified-Since 与 Last-Modified 的判断边界。125 收藏 -
Go 的 strings.Cut 会同时返回分隔符前后文本和 ok 标志,分隔符缺失时前半部分保留原字符串、后半部分为空。本文用配置解析和并发无关的最小示例,说明如何区分缺失、空字段与正常切分。125 收藏 -
Go multipart boundary 缺失时,先检查 Content-Type 参数,再区分请求头、请求体和字段层问题;本文给出客户端发送与服务端诊断的可靠写法。125 收藏 -
讲清 Go text/template 如何通过 FuncMap 注册自定义函数,为什么必须先 Funcs 再 Parse,以及如何处理函数签名、error 返回和生产环境初始化顺序。125 收藏 -
用 Go 的 atomic.Uint64 实现并发请求计数,掌握 Add、Load、零值、复制限制、溢出与旧版 sync/atomic 函数的使用边界。125 收藏 -
Go 的 bytes.Reader 适合从 []byte 创建只读游标。本文用一个可运行示例说明 Read、ReadAt、Seek、Len、Size 和 Reset 的区别,帮助你按顺序读取或按偏移取字节。125 收藏 -
Go 服务里把配置藏在全局变量和 init 里,短期省事,长期会让测试、灰度和排查变难。更稳的做法是启动时解析并校验配置,再通过构造函数显式传入依赖。124 收藏