Go语言技术文章
-
用 Go iter.Pull 构建受限整数收集器,区分 nil 迭代器、空序列、合法零值、解析错误与提前停止,提供完整代码,并解释 defer stop、panic 传播和资源清理的边界。483 收藏 -
餐饮门店保存冷藏食品温度巡检记录时,应把设备、时间、读数、食品或库位、责任人、复核人和异常处置关联起来,并按门店制度归档。本文给出一份可直接落地的记录设计与保存方法。483 收藏 -
Python asyncio.timeout_at 接收事件循环时钟上的绝对截止点,适合多个异步步骤共享同一个 deadline。本文说明如何用 loop.time() 计算 deadline,在上下文外捕获 TimeoutError,区分 timeout 与 timeout_at,并用 reschedule 和 expired 管理动态时限。482 收藏 -
用完整PHP示例说明 stream_socket_pair 的父子进程双向通信,覆盖端点关闭、换行协议、短写处理、读超时及 waitpid 回收,并解释常见互等原因。482 收藏 -
Go 1.17 后未转义分号不再按旧规则拆分查询参数。本文用 net/http.AllowQuerySemicolons 在 ParseForm 前包住 Handler,说明重复键、空值、编码分号以及代理解析不一致的边界。482 收藏 -
Redis BLMOVE 的 timeout 按秒设置,0 表示无限等待。本文用 CLI 和 go-redis/v9 演示有限等待、redis.Nil 超时分支、context 取消边界,以及可靠队列中 processing 列表的恢复责任。481 收藏 -
os.Readlink 返回的是符号链接保存的目标文字。本文说明相对目标为什么要以链接所在目录为基准,如何处理绝对路径和错误边界,以及何时改用 filepath.EvalSymlinks。481 收藏 -
MySQL MAKE_SET 的掩码 NULL、零值与非零位为何输出不同?通过标签位置、NULL 跳过、空标签和未映射位示例,说明怎样保留原始状态,避免把展示空白误判为没有标记。481 收藏 -
用完整 Compose 示例按字节估算 strings.Builder 容量,提前检查输出预算后调用 Grow,说明中文长度、分隔符、追加容量语义和不预留时的回退方法。481 收藏 -
Go 的 ETag 条件请求总是返回 200,通常不是客户端没有缓存,而是服务端没有读取 If-None-Match、比较规则不兼容,或在写入响应体后才尝试返回 304。本文给出可直接改造的 net/http handler 和排障顺序。480 收藏 -
Python 3.14 把多解释器能力带进标准库。本文从 interpreters.create() 开始,说明如何准备主模块、调用函数、通过队列传递消息,并在 finally 中关闭解释器。480 收藏 -
regexp.Regexp 本身没有需要 Close 的资源。本文从正则调用点出发,使用 pprof 区分内存保留、文件与 HTTP 响应体未关闭,以及 goroutine 阻塞等真正的生命周期问题。479 收藏 -
Linux btrfs 要按子卷和快照查看空间,核心是启用 qgroup 后读取 btrfs qgroup show 的 rfer 与 excl。本文从子卷 ID 映射、统计命令和共享 extents 解释入手,说明怎样判断快照真正独占的空间以及统计暂时不一致时的处理方式。479 收藏 -
Go maphash.Bytes 可以直接把 []byte 映射为 uint64 哈希值。本文说明 MakeSeed 与 Seed 复用、Bytes 和 Hash.Write 的关系,以及进程边界和密码学用途限制。478 收藏 -
Go 1.23 起可以让 for range 直接消费函数迭代器。本文用一个泛型集合实现 iter.Seq 的 All 方法,说明 yield 返回 false 时如何提前停止,并梳理数据复制、并发和发布前检查边界。478 收藏