Go语言技术文章
-
Go bufio.Reader 处理超长行时,关键是识别 ReadLine 的 isPrefix 语义并复制拼接片段;普通按行读取可用 ReadString 或 ReadBytes,同时设置单行大小上限,避免把缓冲片段误当成完整记录。107 收藏 -
Golang · Go教程 | 3星期前 | 文件处理 · 错误处理 · Go教程 · FieldsPerRecord ParseError Go encoding/csv CSV注释行 csv.Reader.Comment
Go encoding/csv 的 Reader.Comment 可以忽略行首直接出现注释字符的整行内容,再配合逐条 Read、FieldsPerRecord 和 ParseError 处理,把注释行、空行、有效记录与格式异常分开。107 收藏 -
Go 的 mail.AddressParser 可通过 mime.WordDecoder.CharsetReader 解析 RFC 2047 自定义字符集显示名。本文给出字符集白名单、UTF-8 转换、单地址与列表解析、错误回退和核对方法。107 收藏 -
Go 模块代理返回 404 和 410 时,命令通常都会按 GOPROXY 顺序回退;真正需要排查的是请求资源、分隔符和其他终止错误。本文用下载命令拆开判断路径。107 收藏 -
Golang · Go问答 | 1天前 | 并发安全 · goroutine · Go问答 · Go结构化并发 runtime/secret并发读取 secret.Do goroutine Go密钥生命周期 WaitGroup敏感数据
runtime/secret 会让作用域内新建的 goroutine 继承秘密模式,但不会替你同步共享切片。本文用结构化并发说明密钥只读共享、worker 独立状态、公开结果复制、取消等待与平台降级的正确边界。107 收藏 -
用 Go unique.Handle 把规范化后的 HTTP 方法与路径组合成可比较身份,演示并发路由注册中的去重方式与适用边界。107 收藏 -
Go database/sql 的 sql.Stmt 可以在重复 SQL 中复用。本文按 DB、事务和局部函数三种边界说明 PrepareContext、StmtContext 与 Close 的正确放置,避开反复 Prepare 和资源迟迟不释放。106 收藏 -
讲清 Go sql.Tx 回滚失败时如何保留原始业务错误,使用 errors.Join 组合异常,并区分 ErrTxDone 与 Commit 失败。106 收藏 -
Go flag.VisitAll 会按参数名字典序遍历全部参数,这个确定性顺序不等于用户帮助的阅读顺序。本文解释 VisitAll、Visit 的边界,并给出收集参数后按显式规则生成稳定帮助文档的方法。106 收藏 -
围绕 Go encoding/xml 的 Decoder.Strict,说明如何隔离宽松解析、配置 AutoClose 与 Entity,并在容错后继续校验 XML 结构和业务字段。106 收藏 -
说明 Go net 连接 IPv6 链路本地地址时的 zone、方括号、tcp6、JoinHostPort 和 DialContext 参数边界。106 收藏 -
Go 的 http.FileServer 不会自动为单页应用回退到 index.html。本文用 fs.Stat、Accept 与扩展名判断区分真实静态文件、前端路由和缺失资源,并给出支持 embed.FS 的完整 Handler。106 收藏 -
Go encoding/csv 的 Comment 只识别没有前导空白的物理行首。引号字段中的 # 属于字段值,不会被当成注释;本文用代码和边界表说明三种情况的区别。105 收藏 -
Go 泛型出现 cannot infer type 时,先判断类型参数是否出现在普通实参中,再用显式类型参数或调整函数签名完成修复。105 收藏 -
Go 的 channel range 只有在通道关闭后才会退出。本文从单发送者、多发送者和接收端提前退出三个场景说明 close 的责任边界,避免 range 卡住与 send on closed channel。105 收藏