Go问答技术文章
-
go-mp3 的 Seek 使用解码流字节偏移,输出为 16 位小端双声道 PCM;本文说明为什么要按 4 字节 sample 对齐,并给出 Seek、Read 和生产边界处理示例。110 收藏 -
动态查询不能把所有列都写死成 string 或 int64。本文用 ColumnType.ScanType 生成 Rows.Scan 的指针目标,并说明 NULL、[]byte、驱动不支持类型信息和 rows.Err 的处理边界。110 收藏 -
Go bytes.Buffer.Grow 只预留后续写入容量,不会增加有效数据长度。本文区分 Grow、Len、Cap 和 Bytes,说明如何正确写入、读取、复用缓冲区并处理边界。110 收藏 -
Go generate 在 CI 中报找不到命令,通常不是指令没有执行,而是生成器不在 PATH、工作目录与预期不同,或工具安装步骤没有进入同一个 job。本文按命令解析、包源目录、PATH 和流水线检查点给出稳定排查与配置方法。109 收藏 -
Go 上传请求在请求头发出后长时间没有发送请求体,通常要先检查 Expect: 100-continue 与 http.Transport.ExpectContinueTimeout,而不是直接调大响应头超时。本文按服务器响应、零值语义和请求上下文给出排查与配置取舍。109 收藏 -
Go 读取 CSV 时出现逗号字段错位,通常是把字段内容里的逗号当成了分隔符,或输入没有遵守引号规则。本文用 encoding/csv 说明 Reader、FieldsPerRecord、ParseError 和 Writer 的正确处理方式。109 收藏 -
Go bloom 的容量参数对应预期插入量,不是可以无限增长的硬盘空间。本文解释容量不足后误判率为什么升高,如何理解 m、k、n 的关系,并给出容量预留、分段过滤器、重建与回源降级的工程取舍。109 收藏 -
Go archive/zip 写完条目后如果没有调用 Writer.Close,ZIP 末尾可能没有中央目录,读取端就会报归档损坏。本文说明 Close 的作用、正确收尾方式,以及如何保留 Close 和底层文件的真实错误。109 收藏 -
Go database/sql 的 rows.Next 返回 false 只表示遍历结束,不能直接当作成功;本文用一个可复用示例说明如何通过 rows.Err 捕获迭代错误,并区分 Query、Scan 与 Close 的诊断边界。109 收藏 -
os.File.Sync 返回成功仍读不到预期内容时,按写入完整性、读回位置、目录项和底层存储四层排查,避免把文件同步误认为事务提交。109 收藏 -
Go 中无缓冲结果 channel 如果没有接收方,发送 goroutine 会一直等待。本文用一个具体的结果返回场景说明提前返回为何造成泄漏,并给出取消发送、容量为一的缓冲和通道所有权边界的处理方式。108 收藏 -
Go uuid.Parse 对 UUID 十六进制大小写不敏感,但会区分长度、连字符、前后空白和其他格式边界。本文说明 Parse、Validate 与 String 的配合方式,帮助排查请求参数解析失败。108 收藏 -
Go 集成 cel-go 时,int 与 double 混合表达式可能在 Compile 阶段失败。本文按类型检查、算术运算、跨类型比较和显式转换拆开排查,给出可落地的修复选择。108 收藏 -
Go x/text/language 的 Matcher.Match 返回值可能带有 -u-rg- 等扩展字段,这是把用户地区设置带入匹配结果的设计。本文区分返回 Tag 与 index 的用途,并给出资源绑定示例。108 收藏 -
Golang · Go问答 | 1星期前 | web安全 · Go问答 · html/template · Go html/template template.HTML Go模板转义 HTML自动转义
Go html/template 输出和预期不同,通常不是数据丢失,而是模板根据 HTML、属性或 URL 上下文自动转义。本文用最小示例区分纯文本、可信 HTML 和不安全 URL,给出不绕过安全保护的排查与修复方法。108 收藏