Go语言技术文章
-
用 Go 1.24 的 runtime.AddCleanup 管理已有 []byte 缓冲区:从 sync.Pool 复用容量,显式 Close 与 GC 兜底共享幂等释放协议,并说明引用边界、Stop、KeepAlive 和并发约束。278 收藏 -
Go container/list.InsertBefore 返回 nil,通常不是插入位置写错,而是 mark 并不属于当前 List。本文从 Element 的所属关系和标准库源码出发,说明跨链表、已移除节点、nil 返回值与安全插入写法。278 收藏 -
Go go/version.Compare 按 Go 工具链规则比较版本,本文用 beta、rc、语言版本和补丁版本说明排序关系,并给出输入校验与最低版本判断写法。278 收藏 -
Go ast.Preorder 返回可直接用 range 消费的 AST 节点迭代器。本文从 parser.ParseFile 开始,说明深度优先前序顺序、节点类型筛选、找到目标后 break,以及需要跳过子树时的 API 边界。278 收藏 -
sync.OnceValue 只返回一次计算得到的 T,不会自动告诉调用方初始化是否已经发生。当 0、空字符串或 nil 也是合法业务结果时,应把 value、ready 或 err 放进同一个返回结构中,再由 OnceValue 统一缓存。278 收藏 -
Go 1.24 引入 os.Root,可把文件读写、创建和 fs.FS 访问限制在指定目录树内。本文用 OpenRoot、相对路径、Root.FS 和错误处理说明越界路径、符号链接、关闭责任及平台边界。278 收藏 -
Go 的 encoding/json.Number 代表 JSON 数字原文,Int64 只适合能表示为 int64 的整数文本。本文区分小数、指数形式、越界和格式错误,并给出 UseNumber 与可复用解析函数。278 收藏 -
CSS ::scroll-button() 可以直接为横向滚动容器生成前后箭头。本文从生成条件、方向参数、可访问名称、焦点样式和自动 disabled 状态入手,给出兼容降级写法。277 收藏 -
讲清 Go http.DetectContentType 的前512字节取样边界、短文件处理、application/octet-stream 回退,以及上传文件取样后如何复位游标。277 收藏 -
本文用原创示例说明 Python contextlib.chdir 如何在同步文件任务中临时切换工作目录、自动恢复原目录,并解释嵌套、异常、线程、异步、生成器和旧版本兼容边界。276 收藏 -
用 time.Ticker 做周期任务时,停止条件、空输入和任务错误应该分开处理。本文从 NewTicker、select、context 和 defer Stop 讲清一个可复用的实现边界,并补充 Go 1.23 之后的回收语义。276 收藏 -
两张原创冰青水面倒影9:16手机壁纸:主图用柔和水纹铺开画面,变体把细节推向右上方并为下方图标保留空景;附完整中英文提示词、下载按钮和锁屏裁切调整方法。276 收藏 -
Go os.Lstat 报错时,用 errors.Is 区分不存在、权限不足等原因,用 errors.As 提取 PathError 上下文。结合原创清单工具说明错误链包装、符号链接语义与未知错误的保留方式。275 收藏 -
用一个阻塞处理器构造 Go http.Server 优雅关闭的最小复现,再结合 ConnState、请求上下文和超时区分活动请求、空闲连接与 hijack 连接。275 收藏 -
Redis 官方命令文档支持按版本查看。本文说明怎样切到 Redis 8.10 命令参考页,并用 INFO server 的 redis_version 与 COMMAND DOCS 核对实际实例是否支持目标命令。275 收藏