Go问答技术文章
-
Go go-wav 中,WAV 每帧字节数由每通道采样字节数和声道数共同决定。本文用公式解释位深、Block Align、Byte Rate 的关系,并给出读取 Decoder 字段的示例。316 收藏 -
Go 接口中的 nil 指针不一定等于 nil 接口。本文用最小代码对比 typed nil 的成因,并给出 error 返回、调用方检查、errors.Is 与 errors.As 的安全处理清单。316 收藏 -
Go 下载私有模块时出现 sum.golang.org 校验错误,通常是私有模块匹配规则没有配置,或把代理、校验数据库、仓库凭据三个问题混在了一起。本文按错误层级给出 GOPRIVATE、GONOSUMDB、GONOPROXY 的配置和排查方法。315 收藏 -
Go 文件关闭、EOF 和缓冲读取属于不同状态。通过直接读取、缓冲层和提前关闭的示例,解释错误差异的来源,并用明确的资源归属与错误链分类修复导入流程。315 收藏 -
slices.Delete 的结果看似不稳定,通常来自忽略返回值、共享底层数组、len/cap 误判或并发读写。本文用 Go 示例和排查表说明稳定删除区间、处理尾部引用与隔离数据竞争的方法。315 收藏 -
crc64.MakeTable 返回的 Table 可以作为只读算法表在多个任务间复用,但每个并发任务都应创建独立的 hash.Hash64。本文用 Go 代码拆开 Table、Hash64、Checksum、New 和 Update 的边界。315 收藏 -
Go test 报 internal package not allowed 或找不到内部包时,关键不是测试命令本身,而是导入者是否位于 internal 父目录树内。本文用目录、module 和测试包名拆出根因与修复方式。314 收藏 -
Golang · Go问答 | 4星期前 | HTTP · go · Context · net/http · Go net/http Transport goroutine泄漏 context取消 DialContext
自定义 http.Transport.DialContext 时,只有把请求 Context 传到真正可取消的等待点,才能避免连接 goroutine 长期滞留。本文用一个小型拨号器说明 net.Dialer.DialContext、自定义名额等待、Transport 接入、错误适配和 trace 排查的边界。314 收藏 -
Go CookieJar 跨子域会话异常应区分拒收与目标筛选,结合表驱动测试检查 Domain、Path 和 Secure,并明确 SameSite 的浏览器边界。314 收藏 -
strconv.ParseUint 不接受前导加号或负号。通过批量大小命令行示例,区分符号策略、固定十进制、位宽范围与业务区间,并说明语法错误、范围错误和旧协议加号兼容的处理方式。314 收藏 -
Go 用较短内容覆盖旧文件时不会自动删除尾部字节,使用 os.File.Truncate 按新长度截断,并注意文件偏移、写权限和并发边界。314 收藏 -
Go 服务端可以直接调用 r.Referer() 读取请求头中的 Referer;缺失时返回空字符串。本文说明它与 Header.Get 的关系、测试写法、代理和隐私策略造成的缺失边界,以及为什么不能把 Referer 当成认证或安全授权依据。314 收藏 -
Go ast.File.Pos 指向 package 声明而非文件头。通过原始源码示例区分 FileStart、Doc 与字节偏移,并说明源码工具如何保留前导注释与空白。314 收藏 -
Go 上下文取消后下游请求仍不退出,通常不是 cancel 失效,而是取消信号没有传到具体 API,或底层阻塞点本身不支持取消。本文按 HTTP、数据库和自定义调用链给出排查与修复方法。313 收藏 -
Go 模板提示自定义函数未定义时,应在同一模板集合解析前注册 FuncMap。通过统一构造器、命名模板与独立缓冲输出,区分注册、解析和执行错误,避免在并发请求中修改共享模板。313 收藏