Go语言技术文章
-
Go 的 os.ReadFile 遇到符号链接时默认读取链接目标内容;本文对比 ReadFile、Stat、Lstat 和 Readlink,说明如何区分目标文件、链接自身与链接保存的路径。483 收藏 -
Go http.Server 的优雅关闭不是直接调用 Close,而是用 Shutdown 先停止监听、关闭空闲连接,再等待活动请求结束。本文给出带退出信号和超时上下文的最小实现,并说明 ErrServerClosed、超时以及 WebSocket 等长连接边界。483 收藏 -
MySQL WITH ROLLUP 会额外生成小计和总计行,不能只看 NULL 判断层级。本文用 GROUPING() 区分原始 NULL 与汇总 NULL,并给出稳定排序与 ONLY_FULL_GROUP_BY 边界。483 收藏 -
Vite alias 在开发环境可用、Vitest 测试却失效时,优先检查绝对路径、vitest.config.ts 的配置层级、import 与 require 的差异,以及外部化依赖限制。483 收藏 -
Go errors.As 返回 false 时,先看错误实现的 Error 接收者和实际动态类型,再决定目标变量是 *T 还是 T。本文用一个小型校验错误示例说明指针错误、值错误、%w 包装和常见声明误区。483 收藏 -
连接超时不限制响应体读取。通过有限响应客户端示例区分拨号、响应头和总预算,处理 context 生命周期、读取错误、正文大小与关闭责任,并说明流式请求的不同策略。483 收藏 -
弹窗或侧栏滚到底部后,页面跟着滚动通常是 scroll chaining。本文用 overscroll-behavior 解释 auto、contain、none 和 chain 的差异,并给出只限制纵向滚动的写法与排查边界。483 收藏 -
Python email.policy.clone 可创建带 CRLF 行分隔符的新策略,再由 as_bytes 输出邮件字节。本文给出 .eml 落盘示例,说明换行与折行的区别,以及序列化、文件写入和邮件传输各自的责任。483 收藏 -
Linux lsattr 怎样查看文件的不可变属性?本文从文件排障场景出发,说明如何读取属性字符串、区分 i 与 a 等标记、查看目录本身或递归内容,并解释 lsattr 结果为什么不能替代普通权限和实际写入检查。483 收藏 -
PEFT 中启用和停用 LoRA,关键是区分临时禁用全部适配器、按名称切换活动适配器,以及永久卸载模块。本文用 PeftModel 和 Transformers 两种接口说明调用边界,并给出状态检查清单。483 收藏 -
GoLLRB 的 DeleteMin 会删除并返回有序树中的最小元素,空树返回 nil。本文对比 Min 与 DeleteMin,演示 llrb.Int、类型断言和连续消费时的停止条件。483 收藏 -
Go 模块发布后发现严重问题时,可以用 retract 标记单个版本或闭区间,让后续版本选择避开它,同时保留已有项目的可复现构建。本文说明 go.mod 写法、承载版本、go list 查询与旧工具链边界。483 收藏 -
从仓库、制品和部署资产出发,说明 GitHub Actions 权限治理的优先级,区分 GITHUB_TOKEN、其他凭据以及不可信输入的边界。483 收藏 -
用 Go iter.Pull 构建受限整数收集器,区分 nil 迭代器、空序列、合法零值、解析错误与提前停止,提供完整代码,并解释 defer stop、panic 传播和资源清理的边界。483 收藏 -
餐饮门店保存冷藏食品温度巡检记录时,应把设备、时间、读数、食品或库位、责任人、复核人和异常处置关联起来,并按门店制度归档。本文给出一份可直接落地的记录设计与保存方法。483 收藏