Go语言技术文章
-
Golang · Go教程 | 20小时前 | HTTP · go · Cookie · 跨域 · cors · cookie Go cors net/http SameSite 跨站请求 http.Cookie
Go 的 net/http 可以通过 Cookie.SameSite 表达 Strict、Lax 和 None 三种跨站发送策略,但浏览器是否真正带上 Cookie 还取决于 Secure、fetch credentials 和 CORS。本文从一个跨站会话场景拆开这些配置的职责边界。399 收藏 -
Go 遇到 import cycle not allowed 时,关键不是搬文件,而是拆开包依赖环。本文用 checkout、payment 和 PaymentGateway 示例说明接口归属、隐式实现、组合根注入及 go list 排查方法。398 收藏 -
Go 测试里用 testing.TB.Setenv 设置临时环境变量,再用 t.Cleanup 管理关联状态,可以让测试结束后自动恢复。本文说明清理顺序、并行边界和可执行检查方法。398 收藏 -
Go net/url 中 PathEscape 与 QueryEscape 都是 URL 转义函数,但服务的语义边界不同。本文用特殊字符对比、URL 结构写入和解码检查,说明路径参数与查询参数的正确选择。398 收藏 -
用一个小型 CSV 检查工具,把 Go encoding/csv 的 ParseError 行列、InputOffset 字节边界和原始行片段组合起来,快速定位坏记录。398 收藏 -
Go maps.Clone 可以复制 map 并让键级修改彼此独立,但它只做浅拷贝。本文从普通值、nil、空 map、自定义类型和切片 value 说明使用边界,并补上并发快照注意事项。398 收藏 -
Go 的 ascii85.NewDecoder 接收 io.Reader,会跨底层 Read 边界保留未完成编码组。本文用 io.MultiReader 连接分段输入,说明 EOF 收尾、<~ ~> 包装符、CorruptInputError、限流与生产验收方法。398 收藏 -
用 Go iter.Seq 封装数据库 keyset 分页,把查询延迟到遍历发生时,并在提前停止、扫描错误和上下文取消时正确结束查询与释放 sql.Rows。398 收藏 -
Golang · Go问答 | 4星期前 | JSON · Go问答 · 接口测试 · Go JSON测试 map比较顺序不稳定 encoding/json测试 reflect.DeepEqual比较JSON cmp.Diff用法
Go JSON 测试失败不一定是数据变了,map 遍历顺序、JSON 成员排列与字节级快照是三个不同问题。本文用反序列化、reflect.DeepEqual 和 cmp.Diff 说明稳健的比较方式。397 收藏 -
Go archive/zip.File.Open 返回的是 io.ReadCloser。本文区分条目读取器与 ZIP 归档读取器的关闭责任,并给出单条函数、批量遍历和错误处理的安全写法。397 收藏 -
time.Now 返回的时间可能同时包含墙上时钟和单调时钟,但 time.Time.Round 是墙上时间计算,会从结果中剥离单调读数。本文按比较、耗时、序列化和 map key 场景说明怎么判断与修复。397 收藏 -
从 no_application_protocol 症状出发,定位 Go TLS 客户端与服务端 NextProtos 无交集的问题,解释空列表与不匹配的差别,并用 NegotiatedProtocol 和回归测试确认修复。397 收藏 -
tar.Header.Format 变成 FormatUnknown,通常表示 Reader 虽能解析条目,却无法把其头部可靠归类为 USTAR、PAX 或 GNU;本文区分未知格式与 ErrHeader,并给出安全转存方式。397 收藏 -
用 Go 的 bytes.Buffer 拼接多段二进制数据时,可以预留容量、连续 Write,并在结果消费或复制后 Reset 复用。本文重点说明 Bytes 的别名生命周期和安全边界。396 收藏 -
Go 泛型接口报错时,关键不是调用语法,而是类型参数的实际方法集。本文用 Buffer 和 Sink 示例说明 T 与 *T 的差异、编译期断言及指针接收者的取舍。396 收藏