Go语言技术文章
-
Go WebSocket 关闭码应按所选库从读循环错误中提取。本文用 Gorilla CloseError 展示 Code 与 Text 的读取方式,说明 1005、1006、本地主动关闭和握手 HTTP 状态的区别。147 收藏 -
通过一个原始名称检查 CLI,说明怎样组合 fs.ValidPath、应用命名政策和 fs.Stat,区分格式、不存在及权限问题,并解释路径清理与目录访问的边界。147 收藏 -
bufio.Scanner 本身不负责关闭底层 Reader。本文用文件读取场景说明资源所有权、defer 释放、Scan 错误检查和长 token 边界,帮助定位文件句柄或连接没有回落的问题。147 收藏 -
Go printer.CommentedNode 不会自动复制整个 AST 文件的注释,它把一个目标节点和指定的 ast.CommentGroup 切片交给 printer.Fprint。本文用一个源码生成场景说明如何筛选注释、复用 FileSet 并处理未选注释与合成节点的边界。147 收藏 -
Go ParseInLocation 可按指定 Location 解释无时区日期。本文给出批量解析示例,说明复用时区、结果预分配、日期转换差异和错误处理边界。147 收藏 -
Go 文件名平台后缀与构建注释必须同时满足。本文用冲突片段和互补实现说明如何修改文件命名、表达平台并集,并区分目标环境、额外标签及文件选择结果。146 收藏 -
Go 事务 Commit 返回成功后仍读取不到刚写入的数据,通常要先检查提交错误、查询条件、Tx 与 DB 是否混用,以及是否读到了延迟副本。本文按 database/sql 的事务边界给出排查与实现方式。146 收藏 -
用 Go crypto/sha3.New256 复用 SHA3-256 哈希对象,讲清 Write、Sum、Reset 的边界、批量摘要中的清理顺序,以及 sync.Pool 归还对象时怎样避免串状态。146 收藏 -
Go go/types.Config.IgnoreFuncBodies 可以让类型检查器跳过函数体,但不会跳过函数声明、参数和返回值。本文用最小源码分析流程说明它的影响范围、Info 映射的取舍,以及为什么函数体内表达式信息会变得不完整。146 收藏 -
Go io.LimitReader 可以把任意 io.Reader 包装成有字节上限的流。本文用一个小型文本导入工具说明如何消费受限输入、判断是否触达上限、处理底层错误,并比较它与 io.CopyN、http.MaxBytesReader 的使用边界。145 收藏 -
用 Go net/http 提供静态文件时,http.FileServer 不会替你决定 Cache-Control。本文通过 handler 包装器区分带 hash 的资源和 HTML 入口,讲清缓存头与条件请求的职责边界。145 收藏 -
Go 生成 GIF 时,局部帧叠加和 Disposal 选择不当会让旧像素残留。本文解释 DisposalNone、DisposalBackground、DisposalPrevious 的区别,并给出编码与排查方法。145 收藏 -
Go csv.Reader 的 FieldsPerRecord 为零时会由首条记录确定后续列数。本文比较零值、正数和负数,解释表头、空字段与 ErrFieldCount,并给出读取策略迁移示例。145 收藏 -
同时读取 Example.Output 与 EmptyOutput,区分显式空输出、未声明输出和非空预期文本。通过带注释的 AST 静态抽取示例,说明记录字段和运行证据的边界。145 收藏 -
database/sql 查询提前返回时,如果 Rows 没有关闭,连接可能持续处于使用中。本文用 MaxOpenConns=1 的最小测试说明阻塞现象,并给出安全读取与排查方法。145 收藏