Go语言技术文章
-
介绍 Go archive/tar 识别 GNU 与 PAX 稀疏文件条目的方法,解释逻辑大小、洞区读取行为和 Writer 不支持稀疏写入的边界。125 收藏 -
Go 的 container/ring.Link 可以把一个循环链表整体插入另一个环的锚点之后。本文用完整示例说明拼接顺序、返回节点、nil 处理和同环调用边界。125 收藏 -
Golang · Go问答 | 1星期前 | 网络编程 · https · Go问答 · tls Go 证书校验 RootCAs VerifyConnection InsecureSkipVerify
Go 的 InsecureSkipVerify 会跳过服务端证书链和主机名校验,短期能绕过握手错误,却把中间人风险带进连接。本文按证书链、私有 CA、ServerName 与 VerifyConnection 的职责,给出更安全的替代方案和上线检查清单。125 收藏 -
math/big.Int.FillBytes 会把整数的绝对值写入调用方提供的字节切片;切片过短时高位会被截断。本文用 BitLen 预估容量,在固定宽度字段写入前拒绝不安全目标,并说明负数、零值和缓冲区复用边界。125 收藏 -
Go HTTP 客户端拿到响应后,Body 的读取程度和关闭时机都会影响连接复用。本文按完整读取、只看状态码和有限排空三种场景说明如何选择,让 defer、读取上限与 HTTP/1 复用策略各司其职。125 收藏 -
把 Go 结构化输出测试从脆弱的长字符串断言迁移到 golden 文件:先稳定序列化,再用 -update 显式更新基线,最后输出可审阅的差异,避免测试被悄悄改绿。125 收藏 -
exec.Cmd.Cancel 定义 Context 结束时如何通知子进程停止,WaitDelay 则限制取消后的退出等待和进程退出后的管道收尾时间。本文用两个最小实验讲清组合方式、错误判断与常见误区。124 收藏 -
Golang · Go问答 | 3天前 | CGO · 内存管理 · Go问答 · Go CGO unsafe.Pointer 指针传递 runtime/cgo.Handle runtime.Pinner
Go cgo 传指针最重要的不是指针类型,而是内存由谁分配、是否包含 Go 指针以及 C 是否会在调用返回后保存它。本文按临时借用、C 堆复制、runtime.Pinner 和 runtime/cgo.Handle 说明安全边界。124 收藏 -
Go sync.WaitGroup 的关键不是把 goroutine 等住,而是让 Add、Done 与 Wait 围绕同一批任务形成稳定配对,本文给出可直接复用的写法与排查边界。123 收藏 -
Go unsafe 指针转换的关键不只是地址能否转,而是对象在底层调用结束前是否仍然可达。本文用直接传参、runtime.KeepAlive 和 unsafe.Add 说明安全边界。123 收藏 -
zip.File.Open 返回解压后的逻辑内容并通过 io.ReadCloser 管理读取资源;OpenRaw 返回 ZIP 中未经解压的压缩载荷。本文以解析失败场景拆解两者差异,给出业务读取、内容哈希和 Writer.Copy 原样迁移的正确选择。123 收藏 -
Go format.Source 接收内存中的 []byte 源码,解析成功后返回标准 gofmt 风格的字节,语法不完整则返回错误。本文用一个小型代码生成器演示完整文件、局部源码、导入排序、错误包装和测试方法。123 收藏 -
Golang · Go问答 | 5天前 | HTTP服务 · Go问答 · Go net/http 连接生命周期 StateHijacked StateClosed http.Server.ConnState 会话资源
用 Go 的 http.Server.ConnState 管理连接级会话资源,区分 StateIdle、StateClosed 与 StateHijacked,给出受 mutex 保护、可幂等清理的资源注册表写法,并说明 HTTP/2 与优雅停机边界。123 收藏 -
说明 Go archive/zip 如何自动生成 ZIP64 元数据,使用 io.Copy 流式写入大条目,并正确读取 64 位大小字段与处理关闭错误。122 收藏 -
Golang · Go教程 | 1星期前 | Go教程 · database/sql · Go database/sql 动态查询 sql.Rows.ColumnTypes ColumnType DatabaseTypeName ScanType
Go 的 sql.Rows.ColumnTypes 可读取查询结果列的名称、数据库类型、扫描类型、长度、精度和可空性。本文给出完整示例,并比较 Columns、目录查询与动态值扫描的适用边界。122 收藏