Go语言技术文章
-
Go 反射中调用 Value.Addr 前,必须先确认 Value 是否可寻址。本文用 CanAddr 串起普通值、指针解引用、切片元素、结构体字段与 map 索引的边界,并说明它与 CanSet、CanInterface 的区别。318 收藏 -
Go x/text/cases 的 Title 可以结合语言标签生成标题式大小写。本文用普通标题、NoLower、String/Bytes/Transform 和 Caser 并发边界说明怎样选参数与避免误用。318 收藏 -
支付、下单或重试场景里,Go HTTP API 需要区分同一请求的安全重放与参数冲突。本文从调用方体验出发,设计 Idempotency-Key 的语义、存储状态、过期策略和错误响应,并给出可运行的 Go 示例。317 收藏 -
从一个一次性迭代器出发,拆开 slices.SortedFunc 的收集、比较与返回边界,说明如何处理结构体排序、空序列和比较器契约。317 收藏 -
讲清 Go 的 json.Marshal 对 map 键的支持边界:字符串、整数和 encoding.TextMarshaler,以及结构体、浮点数等键的替代方案。317 收藏 -
Go container/list 读取链表节点的实用写法:从 Front、Back 开始,用 Next、Prev 遍历,通过 Value 和类型断言取出业务数据,并处理空链表与删除节点边界。317 收藏 -
围绕 Go slices.BinarySearch 讲清升序切片的查找、未命中插入点、重复值与空边界,并用 BinarySearchFunc 处理结构体字段排序。317 收藏 -
Go multipart/form-data 可以在一次请求中同时上传文件和重复字段。本文用 multipart.Writer 构造请求,演示服务端从 Form.Value 与 Form.File 读取切片,并说明 boundary、资源关闭和大小限制。317 收藏 -
Go billy 的 OpenFile 中,O_CREATE 只负责目标不存在时创建,O_TRUNC 负责打开已有文件时清空内容。本文用 memfs 与 osfs 的接口语义对比新建、覆盖、追加和排他新建,避免误删旧文件。317 收藏 -
以检索结果页说明 Go html/template 的上下文转义、普通模板函数与可信片段,给出固定HTML标记的完整示例,并明确模板源码、富文本和URL的信任边界。317 收藏 -
Golang · Go问答 | 1星期前 | HTTP客户端 · Go问答 · Go HTTP代理 net/http Transport ProxyConnectHeader GetProxyConnectHeader CONNECT
Go 的 ProxyConnectHeader 只服务于 HTTP 代理的 CONNECT 建隧道请求,不是发往目标站点的普通请求头。本文按代理选择、固定配置、动态回调和证据排查四步定位“请求头缺失”,并解释 GetProxyConnectHeader 覆盖 ProxyConnectHeader 的关键关系。317 收藏 -
表格驱动和并行子测试中,把资源创建、t.Cleanup 注册和释放范围放在同一个子测试作用域,可以覆盖失败、跳过与独立运行场景;本文说明父子清理顺序、后注册先执行和共享资源边界。317 收藏 -
Go archive/tar 当前没有公开的 Reader.WriteTo 方法。本文解释源码内部 writeTo 与 Reader.Read 的差异,说明稀疏文件空洞为何会表现为 NUL 字节,并给出普通解包与额外恢复层的边界判断。317 收藏 -
Go 的 Request.Context 取消只是通知,HTTP Handler 是否退出取决于代码有没有把取消信号传到阻塞点并主动返回。本文按请求、下游调用、goroutine 和响应写入四个边界排查这个问题。317 收藏 -
Go 的 netip.Addr.String 会保留 IPv6 Zone;真正容易丢失 Zone 的位置通常是 As16、AsSlice、net.IP 转换或 Prefix。本文按字符串化、结构化比较和转换边界说明如何定位问题。317 收藏