Go语言技术文章
-
Go 的 net/http.Header.Get 只返回一个值。本文用可复现的响应头示例说明 Header.Get、Header.Values 与 Header.Add 的关系,帮你判断何时该读取单值、何时必须遍历全部值。155 收藏 -
Go 泛型约束写了具体类型,却不代表类型参数拥有该类型的全部方法。本文从类型集、方法集和接口约束的边界出发,解释常见编译错误,给出可运行的修复写法,并说明什么时候该把行为写进约束。154 收藏 -
用 Go 的 slog.LogValuer 控制日志字段的延迟求值与脱敏,厘清日志级别过滤、LogValue、slog.String 和 slog.Group 的调用边界。154 收藏 -
Go 1.24 的 strings.SplitSeq 返回单次消费的字符串迭代器,适合只遍历不保存结果的场景。本文对比 strings.Split 与 SplitSeq 的消费方式,核对连续分隔符、空字符串和提前 break 等边界。154 收藏 -
污水处理池清淤不能把开盖当成安全信号。作业前要先确认有限空间和危险因素,完成隔离、持续通风、气体检测、作业审批与监护配置;检测异常或条件变化时,人员应停止进入并按现场处置方案处理。154 收藏 -
Go 中 os.Rename 在同一文件系统里适合做临时文件提交,但跨文件系统时可能返回 invalid cross-device link。本文从错误现场出发,写出可检查、可回退、不会把半成品当正式文件的保存流程。154 收藏 -
2026年中秋节放假3天,国庆节放假7天。本文按国务院办公厅通知核对日期、调休上班日和出行前需要再次确认的信息。153 收藏 -
文章 · java教程 | 3天前 | 线程池 · 并发编程 · 故障排查 · Java教程 · ThreadLocal · java 线程池 Java线程池 threadlocal remove 线程复用
ThreadLocal 在线程池中不会随着任务结束自动清空,工作线程复用会让下一个任务读到上一个任务留下的值。本文用 Java线程池 和可运行示例拆开 get、set、remove 的生命周期,给出 finally 清理、任务装饰和验收边界。153 收藏 -
图片输入的成本不只由文件大小决定,还受模型细节档位、有效分辨率和长图切分方式影响。本文用一套可复核的输入策略,判断何时用低细节、何时保留高分辨率,以及长图如何切成可验收的局部图片。152 收藏 -
Go 的一次取值函数适合惰性初始化,但初始化函数一旦 panic,后续调用会再次 panic,而不是自动重试。本文拆开这个语义,给出可观测、可控的失败处理方案。152 收藏 -
Go 的 os.File.ReadAt 适合多个 goroutine 按独立偏移量并发读取同一个文件,但每次调用仍要检查 n 和 err,尤其要正确处理 n < len(buf) 的短读与 io.EOF。152 收藏 -
科技周边 · 业界新闻 | 4天前 | 测试 · go · httptest · Go 1.27 · testing/synctest Go 1.27 httptest.NewTestServer 内存网络测试
Go 1.27 为 net/http/httptest 带来 NewTestServer,它使用内存假网络,并能与 testing/synctest 的确定性时间控制配合。本文从异步 HTTP 测试场景说明两者边界、最小用法与验收方式。152 收藏 -
asyncio.Queue 适合在协程之间传递有界任务,但只创建队列并不能自动解决背压和停机。本文用真实的生产者、消费者和关闭信号示例,说明 maxsize、put、task_done、join 的配合边界,以及如何让队列在停止时不丢任务。152 收藏 -
数据库 · MySQL | 3天前 | MySQL · 事务 · C API · 批量写入 · 批量Insert mysql_info mysql_affected_rows CLIENT_FOUND_ROWS
批量 INSERT 成功后,mysql_affected_rows() 只能给出影响行数,mysql_info() 还能返回 Records、Duplicates、Warnings 等细节。本文用 MySQL 8.4 C API 示例说明两者如何配合,以及 CLIENT_FOUND_ROWS 什么时候会改变判断。152 收藏 -
scheduler.postTask 可以把前端任务按 user-blocking、user-visible 和 background 分层,并通过 AbortController 取消尚未执行的工作。本文从交互卡顿场景出发,给出最小用法、任务取消、兼容降级和验收边界。151 收藏