Go语言技术文章
-
syscall.Exec 不是启动一个子进程,而是把当前进程映像替换成目标程序。本文从 argv、环境数组和成功不返回三个边界出发,给出 Unix 下的最小写法与兼容建议。139 收藏 -
Go sync.Pool 中对象放入后很快消失并不一定是并发错误,本文解释临时复用池的生命周期边界,并比较 Pool、带锁 map 与有界 channel 的适用场景。139 收藏 -
Go bytes.FieldsFunc 接收 rune 判定函数,按 UTF-8 字符边界切分 []byte,并自动丢弃连续、首尾分隔符产生的空片段。本文用中文和混合符号示例讲清它与 Split、复制策略的差异。139 收藏 -
Go plugin 跨机器加载失败,通常不是 plugin.Open 写错,而是平台、工具链、构建参数、共同依赖或文件布局不一致。本文给出分层判断、最小 host/plugin 示例和同构交付、静态编译、IPC 三种修正路径。139 收藏 -
Go netip.Prefix.AppendText 用于把 CIDR 文本直接追加到已有 []byte 缓冲区。本文说明它与 AppendTo、String 的关系,演示返回切片的正确接收方式,并处理 ParsePrefix 的错误边界与 API 取舍。139 收藏 -
Go 的 log.Fatal 写出日志后会调用 os.Exit(1),不会等待当前函数或其他 goroutine 的 defer 展开。本文从函数返回、panic 与进程级退出的边界出发,说明资源清理、错误返回和 main 集中退出的组合方式。139 收藏 -
通过完整 Go 示例讲解 Validator TagNameFunc 的注册与错误提取,区分 JSON 字段名、Go 字段名和嵌套路径,说明缓存时机及 json 忽略标签的处理方式。139 收藏 -
Cobra 默认只执行命令链上找到的第一个持久化钩子。本文解释 PersistentPreRunE 的父子继承规则,并说明如何用 EnableTraverseRunHooks 开启遍历以及怎样避免重复初始化。139 收藏 -
用 Go net/http/httptrace 观察 GetConn、GotConn、PutIdleConn 和 GotConnInfo,定位 Response.Body、Transport 复用配置及 HTTP/2 场景下的连接未复用问题。139 收藏 -
围绕 Go io.SectionReader.ReadAt 解释 n 与 err 的组合语义,说明局部偏移、区间末尾短读和 io.EOF 的正确处理方式,并给出不会丢弃部分数据的读取函数。139 收藏 -
Go 处理归档条目或抽象文件系统时,可以用 io/fs.ValidPath 先判断路径格式,再把合法名称交给 FS.Open 或 fs.ReadFile。本文用固定样例说明斜杠、根目录、空元素、点元素与文件存在性的边界。138 收藏 -
Go slog通过Group组织单条记录的局部字段,通过WithGroup派生模块Logger。结合导入任务示例说明公共根字段、绑定顺序、嵌套路径和查询取舍。138 收藏 -
Go Base64 标准编码与 URL 编码的区别在字符表,Raw 决定是否省略填充。本文对照四个编码对象,说明 URL 参数转义、存储约定、解码错误及规范文本处理边界。138 收藏 -
用 Go debug/elf.File.DWARF 从 ELF 文件取得 DWARF 数据,说明打开与关闭边界、调试信息缺失的处理,以及如何按条目读取编译单元和函数名。138 收藏 -
Go slog.Level.String 会把 DEBUG、INFO、WARN、ERROR 以及它们之间的数值级别转换成可读文本。本文说明自定义偏移、JSON 与文本配置复用规则,以及外部输入和审计记录的边界。138 收藏