Go语言技术文章
-
Go 1.24 起可以用 os.Root.OpenRoot 把父 Root 内的子目录封装成新的根句柄。本文说明父子 Root 的相对路径边界、ReadFile 用法、关闭顺序与常见错误处理。301 收藏 -
Go HTTP 客户端没有读取 HTTPS_PROXY 时,按请求 scheme、NO_PROXY、localhost、代理值格式和进程首次读取时机逐项排查,并用可复用的 Transport 收敛配置。301 收藏 -
Go pprof 标签不见了,通常不是标签字符串失效,而是 profile 类型、标签作用域或采样窗口不匹配。本文按官方 runtime/pprof 语义,说明 pprof.Do、WithLabels、SetGoroutineLabels 的区别与排查顺序。301 收藏 -
Go sqlx 组合命名参数与 IN 列表时,应先用 Named 把 :name 转为问号参数,再用 In 展开切片,最后按数据库驱动调用 Rebind。本文说明调用顺序、空切片边界和可复用查询写法。301 收藏 -
用 Go 的 go-shp 包读取 Shapefile 伴随的 DBF 属性字段,解释 Fields、Shape 返回的零基行号、ReadAttribute 和 Err 的配合方式。301 收藏 -
Go os.Root 可以把文件操作限制在指定目录树内,避免服务入口只靠字符串拼接判断路径。本文用 OpenRoot、Root.Open 和 Root.OpenFile 说明读取、写入、符号链接、fs.FS 复用与平台边界。301 收藏 -
Go mod 中的 replace 相对路径依赖主模块目录和完整工作区,CI 中常因替换目录未检出、嵌套模块选错或目标缺少 go.mod 而失效。本文给出定位命令、仓库布局修复方式与切换模块版本的判断标准。301 收藏 -
本文用一个小型 Go 示例说明 weak.Make、weak.Pointer.Value、nil 输入和 runtime.KeepAlive 的关系,帮助你判断弱引用适合缓存还是不适合承担生命周期保证。301 收藏 -
用最小示例拆开 Go os.Root 的根目录与相对名称,解释绝对路径、空路径、.. 越界和符号链接为什么会失败,并给出保留 PathError 的修复写法。301 收藏 -
用 Go 的 base64.RawURLEncoding 生成不带等号的 URL 安全令牌,讲清字母表、编码解码、填充兼容和长度错误的处理边界。300 收藏 -
Go sort.SliceStable 会按比较函数原地排序,并保持比较结果相等的记录在输入中的相对顺序。文章用带序号的记录拆开稳定性与副本两个问题,给出同键比较、原地排序和 copy 后排序的可用写法。300 收藏 -
slog JSONHandler 输出字段顺序变化时,先区分 JSON 语义变化与文本排列变化。本文说明 With 属性、调用属性、分组和 ReplaceAttr 的影响,并给出结构化测试与固定字节协议的处理边界。300 收藏 -
Go iter.Pull 把 iter.Seq 的推送式遍历转换为 next 拉取,并返回 stop 管理提前退出。本文用两个序列的并行读取说明 next、ok 和 defer stop 的职责边界。300 收藏 -
用 strconv.AppendFloat 生成浮点文本时,format 决定外形,prec 决定小数位或有效数字,bitSize 决定按 float32 还是 float64 的语义格式化;本文给出参数组合和缓冲区追加写法。300 收藏 -
Go 的 io.Reader 允许在最后一批数据返回 n > 0 与 io.EOF,若代码忽略 n、处理空缓冲区或把整个 buf 当成有效数据,就会出现末尾多处理一次。本文用最小示例说明原因,并给出按 n 与 err 分开处理的可靠写法。300 收藏