Go语言技术文章
-
Go os/exec.Cmd.ExtraFiles 可以把父进程已打开的文件交给子进程。本文用一个父子进程示例说明 ExtraFiles[0] 如何对应文件描述符 3、启动前后的关闭边界,以及 Windows 不适用时该怎么判断。148 收藏 -
Go 交叉编译时设置 CGO_ENABLED=0 后缺少实现,通常不是链接器突然丢了函数,而是带 import C 的文件被 cgo 构建约束排除。本文说明如何定位、补 !cgo 回退,或为目标平台准备 C 交叉工具链。148 收藏 -
os.DirFS 的根目录参数不能是空字符串,文件读取还要区分非法路径、文件不存在和权限错误。本文用 io/fs 的路径约束、errors.Is 和资源关闭写出清晰的异常分支,并提醒 DirFS 不等于符号链接隔离。148 收藏 -
Go 常量文档工具输出复数值时,String 适合短日志,ExactString 才适合精确文档。本文说明如何组装复数、拆分实部虚部并处理 Float64Val 的精度标志。148 收藏 -
Go net/url 解析以问号结尾但没有参数的 URL 时,要用 ForceQuery 保留空查询标记;RawQuery 只表示查询内容,不能单独区分缺少问号和空查询。147 收藏 -
Go 的 unicode.IsGraphic 面向 rune 判断 Unicode Graphic 属性,覆盖字母、标记、数字、标点、符号和空格。本文对比 IsPrint,说明如何按 rune 检查并筛选字符串,处理控制字符、空白字符和非法 UTF-8。147 收藏 -
bytes.Reader.Reset 会把读取器切换到新的字节切片,并把顺序读取位置带回新数据开头。本文用复用场景拆开 Reset、Read、Len、Size、ReadAt 与 UnreadByte 的边界,避免把读取位置和底层数据混在一起。147 收藏 -
Go http.Flusher 让 Handler 可以把已经写入的响应数据主动推向客户端,但当前 ResponseWriter 不一定具备该能力,代理也可能继续缓冲。本文给出安全的类型断言、分块写入和边界排查写法。147 收藏 -
Go malgo 的 framecount 表示一批音频帧,单帧包含所有声道各一个采样点;总采样点数和字节数还要结合声道数与采样格式计算。本文用回调、设备周期和排查信号说明三者区别。147 收藏 -
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 debug/elf.NewFile 从 io.ReaderAt 打开 ELF 文件,读取 FileHeader 中的 Class、Data、Machine 和 Type,并给出架构识别、错误处理与资源释放的工程写法。147 收藏