Go语言技术文章
-
Go 中不要直接比较 IP 字符串:先用 netip.ParseAddr 转成 Addr,再按任务选择 ==、Compare 或 Less;本文还说明 IPv4-mapped IPv6、IPv6 zone、零值、map key 与输入校验边界。157 收藏 -
Linux 的 Cached 高不等于内存快用完。本文从 /proc/meminfo 的 MemFree、Cached、SReclaimable、AnonPages 和 SwapFree 入手,说明怎样用 MemAvailable 判断真实余量,并避免重复相加重叠字段。157 收藏 -
Vite 的 import.meta.glob 可以根据文件模式批量生成模块映射。本文从默认懒加载开始,说明 eager、命名导入、多模式排除、query 资源加载和字面量参数边界。157 收藏 -
使用 Go 的 exec.Cmd.StdinPipe 向子进程提供标准输入时,关键不是只拿到一个 io.WriteCloser,而是明确 Start、Write、Close、Wait 的生命周期。本文用一个可迁移的写法说明如何让 EOF 正确到达,并区分输入写入错误、启动错误和命令退出错误。157 收藏 -
Go x/text/language 的 Compose 适合把 Base、Region 和已有 Tag 组合成语言标签。本文用实际代码说明参数类型、重复部件覆盖、Variant 与 Extension 累积、错误处理和规范化选择。157 收藏 -
robfig/cron/v3 默认会在独立 goroutine 中运行任务。本文用 SkipIfStillRunning 配置同一进程内的跳过策略,并对比 DelayIfStillRunning、单任务包装和多实例边界。157 收藏 -
Go groot 读取 ROOT 文件时,同名对象并不是同一个 key:不带 cycle 默认取最高版本,name;cycle 才能定位历史对象。本文用 Keys、Get 和 Put 说明判断与排查方法。157 收藏 -
Go genetlink 中 Protocol、Family.ID、Family.Version 和 Header.Version 位于不同层次。本文用 generic netlink 请求说明家族版本与协议版本的区别,以及如何避免把错误数字写入命令头。157 收藏 -
78动漫以模型玩具资讯、资料库和论坛为核心。本文说明如何从官网进入资料库,区分系列与单品条目,并正确理解图片、发售字段和用户评论的展示边界。156 收藏 -
Go 的 binary.AppendUvarint 会把 uint64 按每组 7 位追加为变长字节序列。本文用已有前缀、连续追加、容量复用和 Uvarint 解码示例说明怎么用,以及 10 字节上限、截断输入和有符号整数的边界。156 收藏 -
围绕栗子漫画产品站的下载按钮、跨域地址与公开资料字段,说明入口核对、版本辨认和安装安全边界。156 收藏 -
Golang · Go问答 | 3星期前 | channel · panic · 并发编程 · Go问答 · 并发安全 go channel关闭 send on closed channel Golang panic Channel关闭权 多生产者
向已关闭的 Go Channel 发送会触发运行时 panic,因为 close 已声明不会再有新值。本文给出最小复现、单发送者和多发送者安全关闭写法,并说明为什么接收者关闭、isClosed 检查、sync.Once 或 recover 不能替代正确的关闭权设计。156 收藏 -
JDK 25 成为长期支持版本后,虚拟线程已从新 API 观察期进入生产采用期。文章结合 JDK 21 定稿、JDK 24 同步锁改进和 JDK 25 官方指南,说明适用负载、线程模型、限流、可观测性与灰度迁移边界。156 收藏 -
Go runtime/secret 可在受保护调用树结束时擦除寄存器和栈,并在相关堆对象不可达且被 GC 发现后擦除分配,从而缩短临时密钥出现在后续内存转储中的时间。本文给出最小用法、构建条件、平台边界与不能被它消除的副本风险。156 收藏 -
MySQL 字符集迁移到 utf8mb4 时,索引长度可能因每字符最大字节数、联合索引、行格式和页大小发生变化。本文给出迁移前盘点、索引字节估算、方案选择和隔离副本复查方法。156 收藏