Go问答技术文章
-
解释 Gock 全局规则池与默认拦截状态为何使并发用例互相影响,通过完整串行测试示例管理配置、请求、检查及清理,并说明独立 Client 和不同 URL 的隔离局限。273 收藏 -
解释Go JetStream异步发布的即时错误、Future确认与错误通道,给出小批量结果归集示例,说明Complete、超时未决和退出清理的边界。273 收藏 -
Go 集成测试可在昂贵初始化前判断 testing.Short,并通过 t.Skip 标记跳过。本文给出最小写法与完整 HTTP 示例,说明辅助函数、子测试、TestMain、名称筛选及测试缓存的边界。273 收藏 -
Golang · Go问答 | 1星期前 | 标准库 · 错误处理 · Go问答 · Go Base strconv.ParseInt bitSize ParseInt结果 NumError ErrRange ErrSyntax
strconv.ParseInt 本身是确定性的,结果看似不稳定通常来自 base、bitSize、输入前缀或忽略错误。本文用架构边界随笔的方式拆解参数契约、NumError、ErrSyntax 与 ErrRange,帮助把跨环境解析规则固定下来。273 收藏 -
读取失败后,bufio.Reader 里的数据不会因为返回错误就自动消失。本文说明 Discard 的返回值、有限丢弃策略和协议边界,帮助你避免清空过多数据或误删下一条消息。273 收藏 -
Go archive/tar 写入长文件名时,优先显式指定 FormatPAX,并让 Reader.Next 读取扩展头合并后的完整 Header.Name。本文给出可复用最小示例,并说明仍然截断时应检查 USTAR、手动解析和下游解包器。273 收藏 -
Go 程序在本地和容器中出现时区差异,通常不是 Format 的问题,而是 time.Local、TZ 环境变量与 IANA 时区数据来源不同。本文给出 UTC 存储、显式 Location 展示和容器缺少时区数据库时的兼容方案。272 收藏 -
Golang · Go问答 | 4星期前 | 结构体 · JSON · 指针 · go · 接口设计 · encoding/json · encoding/json 结构体字段 可选字段 指针字段 字段缺失 Go JSON null
Go encoding/json 处理 JSON null 时,指针字段会变成 nil,而普通结构体字段通常保留原值。本文用复用旧对象的最小示例拆开字段缺失、显式 null 和具体对象的差异,并给出可选字段与三态接口的建模方法。272 收藏 -
无缓冲 channel 的发送不是把值先放到队列里,而是要等接收方就绪。本文从最小复现出发,按接收未启动、接收提前退出和 nil channel 三条路径定位发送卡住,并给出带取消边界的接口写法。272 收藏 -
cgo 不会让 Go 构建缓存整体失效。本文区分包编译、外部 C 构建和链接,说明 CI 缓存持久化、工具链固定,以及系统 C 库更新后必须显式失效的边界。272 收藏 -
reflect.Value.Bytes 可以读取字节切片,也可以读取可寻址的字节数组;命名切片按元素 Kind 判断,普通数组值则要先取得可寻址 Value。本文用判断表和原创示意图拆开 Bytes、SetBytes 与常见 panic 的边界。271 收藏 -
解释 Go 自定义 TLSClientConfig 时 ServerName、SNI 与证书 SAN 的关系,区分标准 Transport、自定义 TLS 拨号和证书链问题,并给出保留正常证书校验的修复写法。271 收藏 -
Go trimpath 改写构建机绝对路径后,仍可保留文件名与行号。通过错误日志示例,对比两种构建,并用发布标识、源码快照和逻辑路径维持可用定位。270 收藏 -
Go HTTP 客户端可以在复用的 http.Transport 上设置 MaxResponseHeaderBytes,限制服务端响应头的最大字节数。本文说明如何用 Clone 保留默认行为、如何处理超限错误,以及为什么响应头和响应体需要分别设置边界。270 收藏 -
Go ECDH 公钥接入时,应区分原始编码、PKIX DER 和 PEM 文本。本文用显式解析与类型分支说明 NIST 公钥对象转换,并解释为什么转换不会改变曲线。270 收藏