Go语言技术文章
-
httptest 的 Host 与普通 Header、URL.Host 并非同一字段。本文解释路径请求的默认主机,给出表驱动 Handler 测试和本地 HTTP 往返写法,并说明端口与 TLS 的边界。200 收藏 -
Golang · Go教程 | 2星期前 | JSON · bytes.Buffer · Go教程 · encoding/json · Go encoding/json bytes.Buffer json.Compact JSON压缩 JSON空白
Go 的 json.Compact 可以去掉 JSON 结构中的无意义空白,同时保留字符串内容。本文用 bytes.Buffer 组织压缩结果,说明合法输入、非法 JSON、错误处理和 Compact、Marshal、Indent 的用途边界。200 收藏 -
Go 中读取 GOMAXPROCS 当前值时,直接调用 runtime.GOMAXPROCS(0) 即可。本文说明它为什么不会修改设置、默认值从哪里来,以及如何把结果用于启动诊断。200 收藏 -
Go 的 json.RawMessage 适合处理外层结构固定、内层字段动态的 JSON。本文说明怎样先保留未知 payload,再按 kind 延迟解码,并在修改外层字段后通过二次 Marshal 保留原始 JSON 值,同时区分字段缺失、null、空对象和非法 JSON。200 收藏 -
用一个最小 redis-cli 示例说明 Redis Streams 消费组的创建、XREADGROUP 新消息读取、PEL 待确认列表、XACK 确认、XPENDING 排查与 BLOCK 阻塞边界。200 收藏 -
Go OpenFile 追加写仍覆盖文件,通常不是 Write 本身失效,而是 flags 中混入 O_TRUNC、实际使用了 os.Create,或每次循环重新打开文件。本文按现象排查 flags、打开生命周期、Seek 与 WriteAt,给出可直接改造的追加写法。200 收藏 -
OpenTofu 模块输入要先分清 module 元参数与 variable 声明,再用类型、默认值、nullable、validation 和变量来源优先级收紧边界。本文给出父子模块传值、null 覆盖默认值和 tofu plan 排查的最小配方。200 收藏 -
io_uring 的 SQPOLL 由内核线程轮询提交队列,持续繁忙时可以减少提交系统调用;空闲超过 sq_thread_idle 后会休眠,并由 IORING_SQ_NEED_WAKEUP 协调唤醒。本文解释它与 IOPOLL 的区别、配置方式和资源边界。200 收藏 -
讲清 Go regexp.ExpandString 如何消费 FindSubmatchIndex 的匹配区间,用命名捕获组生成替换文本,并处理模板歧义、未匹配组和追加缓冲区。200 收藏 -
Go 1.23 新增的 unique.Make 可以把 comparable 值转换成可比较的 Handle,同值输入得到相等句柄。本文从触发信号、最小写法、Value 浅拷贝和边界处理说明怎样使用它,不把唯一化误当成通用缓存。200 收藏 -
Linux cgroup v2 的 pids.max 可以限制一个 cgroup 及其后代允许创建的任务数量。本文从父子层级、控制器启用和四个观察接口出发,说明如何设置硬上限、理解 EAGAIN,并避免把当前任务数、历史峰值和触顶次数混为一谈。200 收藏 -
使用 go-ini 读取 INI 时,可以用嵌套结构体上的 ini 标签对应节名,再用字段标签对应键名;本文给出 MapTo、StrictMapTo、类型转换和常见排查边界。200 收藏 -
Python difflib.restore 用来从 ndiff 或 Differ.compare 产生的差异流中恢复第 1 份或第 2 份文本。本文说明 which 参数、换行保留、生成器物化方式,以及它与 unified_diff 的格式边界。200 收藏 -
Go oggvorbis 可以从任意 io.Reader 解码,但 Length、Position 和 SetPosition 依赖底层 io.Seeker。本文对比流式输入与可定位输入,解释 Read 返回值、样本单位和 ReadAll 的内存边界。200 收藏 -
KSUID默认生成方式使用秒级时间戳,同秒排序由随机载荷决定。本文用确定性构造解释比较结果,给出独立业务序号的排序示例,并说明游标兼容、时钟与Sequence的适用边界。200 收藏