Go语言技术文章
-
time.Duration 本质是纳秒整数,String 会按可读性自动选择小时、分钟、秒、毫秒、微秒或纳秒,并保留负值符号。本文用典型场景解释这些输出为什么不同,以及接口需要固定格式时怎么处理。339 收藏 -
Go 模糊测试发现失败输入后,不要把 crash artifact 当作临时文件删除。本文以 FuzzParse 为例,说明如何定位 testdata/fuzz 语料、用 -run 精确复现,并让修复后的失败输入长期成为默认回归测试。339 收藏 -
Java Flow 背压的关键不是让 Publisher 自己变慢,而是让 Subscriber 通过 Subscription.request(n) 明确可接收数量,Publisher 只在需求量大于零时调用 onNext。本文用一个单订阅示例说明请求、发送、取消、完成和错误边界。339 收藏 -
Diffusers直接放入GPU通常速度更快但显存峰值更高,CPU卸载能降低常驻显存却增加设备搬运。本文对比两种方式及model级、sequential级卸载的选择边界。338 收藏 -
Go netip.Prefix 解析 CIDR 后为什么还保留主机位?关键在于 ParsePrefix 和 PrefixFrom 都不会替调用者自动掩码。本文说明 Prefix、Masked、Contains 的职责边界,并给出在展示、存储和地址匹配边界处统一规范化的写法。338 收藏 -
Redis Count-Min Sketch 用很小且固定的空间估计数据流频次,但哈希碰撞会让共享计数单元叠加,因此查询值不是精确值。本文结合 error、probability、动态阈值和精确计数结构说明它适合什么场景。337 收藏 -
Golang · Go教程 | 2天前 | 网络编程 · 标准库 · ip地址 · Go教程 · Go netip.Addr ParsePrefix CIDR net/netip netip.Prefix ParseAddr
Go net/netip 中,单个 IP 地址应使用 Addr,带斜杠的 CIDR 网段应使用 Prefix。本文从输入分流开始,说明 ParseAddr、ParsePrefix、Masked、Contains 以及 Addr.Prefix 和 PrefixFrom 的区别。337 收藏 -
Go build 默认会在条件满足时写入版本控制信息。本文围绕 -buildvcs 解释 stamping 失败的原因、仓库边界和修复选择。337 收藏 -
Java String.lines() 适合读取真实文本行,但不会把结尾换行符自动变成额外空记录。本文说明行结束符、连续换行和末尾空元素的差异,并用 split(regex, -1) 保留协议需要的尾部空记录。337 收藏 -
DatagramChannel 非阻塞接收需要正确处理 receive 的 null 返回。本文用有限时长示例说明 Selector 注册、读就绪提示与缓冲区状态,区分无包、空包和截断。337 收藏 -
Go bufio.Reader 在成功 ReadRune 后可用 UnreadRune 回退一个码点。本文以数字串试探解析为例,说明同一 Reader、Peek 失效、重复回退、EOF 与非法 UTF-8 的处理边界。336 收藏 -
Go 使用 unixgram 接收本地数据报时,每次读取对应一个独立报文,但缓冲区太小会让消息内容被截断。本文用 ReadFromUnix 和 ReadMsgUnix 说明怎样保留边界、识别风险并选择合适的读取方式。336 收藏 -
Go cgo 不会替 C 堆自动回收内存。本文从 C.CString、C.CBytes 和 C 侧返回指针入手,建立分配与释放成对出现的责任边界,并说明 Go 指针不能被 C 长期持有的规则。335 收藏 -
用 MySQL JSON_TABLE 和 NESTED PATH 展开嵌套数组,分清 FOR ORDINALITY、ON EMPTY、ON ERROR、EXISTS PATH 以及空数组产生的 NULL 行。335 收藏 -
Redis Cluster 多键命令报 CROSSSLOT,通常是参与命令的键被分到了不同 hash slot。本文介绍槽位检查、hash tag 设计和生产边界。335 收藏