Go语言技术文章
-
更换 Embedding 模型后,旧向量与新向量的维度可能不一致,直接覆盖索引会让写入、查询和回滚同时失控。本文以双索引迁移为主线,拆解维度核对、查询路由、后台回填和回滚验收。229 收藏 -
bytes.Clone 返回独立的 []byte 副本,适合把复用缓冲区中的数据保存成安全快照。本文用可复现代码说明 append、切片别名和 bytes.Clone 的差异,并给出基线与边界。202 收藏 -
讲清 os.File.Truncate 改短文件时的文件长度、当前偏移量和落盘检查,给出可复现的配置文件更新写法。411 收藏 -
用 MySQL 8.0 隐形索引在不删除索引的前提下做查询计划对照,核对 EXPLAIN、实际耗时和恢复动作,降低索引下线风险。291 收藏 -
strings.Builder.String 返回后继续写,旧字符串通常不会被业务代码直接改写,但 Builder 可能复用底层缓冲区并触发扩容。本文用源码和小实验拆开共享存储、扩容与 Reset 的边界。228 收藏 -
regexp.Regexp 默认采用左侧最先匹配的规则,调用 Longest 后会在同一起点优先选择更长结果。本文用路由前缀示例解释两种语义、并发边界与验证方法。255 收藏 -
sync.Map.LoadAndDelete 返回的 value 可能是 nil,但 loaded 仍能准确区分键不存在与键存在。本文用最小可运行示例说明原子删除、nil 值和重复读取的边界。500 收藏 -
Golang · Go教程 | 1星期前 | 文件操作 · 配置管理 · 数据持久化 · Go教程 · 原子替换 · 配置文件 Go 数据持久化 os.Rename 原子替换 os.File.Sync
配置文件写入成功并不等于断电后一定保留。本文用 Go 的临时文件、os.File.Sync、os.Rename 和目录同步串起安全替换流程,解释每一步解决什么问题,以及如何用重启和故障注入思路核对结果。250 收藏 -
io.Copy 返回的 written 和 err 如何判断传输是否完整?本文从写入中断现场出发,拆解 EOF、写入错误、短写入与大小核对的边界。180 收藏 -
Golang · Go教程 | 1星期前 | golang · JSON · 数据库 · 数据建模 · database/sql · JSON Go database/sql 零值 NullTime 数据库NULL
数据库里的 NULL 不是 Go time.Time 的零值。本文用 database/sql.NullTime 贯通扫描、业务判断和 JSON 输出,给出一套能区分缺失时间与真实零时间的最小实现,并说明写回数据库时的边界。336 收藏 -
bufio.Reader.Peek 适合查看缓冲区内的短前缀,不适合把整条未知长度消息一次性探出来。本文用 ErrBufferFull 解释边界,并给出切换 ReadBytes、ReadString 或按分隔符流式消费的判断方法。134 收藏 -
以雨后苔藓玻璃温室为主题,拆解一张适合手机锁屏的竖屏壁纸:主体避开时间区和图标区,提供可复制的中文、英文提示词,以及雾光、色彩和裁切的变体调整方法。396 收藏 -
核对矿产资源储量报告,不能只看报告封面上的资源量数字。应先确认矿种和报告用途,再核对采用的分类标准、评审备案信息、估算范围与资源量口径,最后把报告正文、附表和图件逐项对上。292 收藏 -
Go 的 Request.Cookies 会返回同名 Cookie 的全部值。本文用一个带重复购物车标记的请求,说明如何保留顺序、筛选目标名称,并避免把单值读取误当成完整结果。381 收藏 -
Golang · Go教程 | 1星期前 | golang · sync.Cond · 并发编程 · 任务队列 · 生产者消费者 · Go wait sync.Cond Broadcast 并发任务队列 有界队列
sync.Cond 适合把“队列未满”和“队列非空”这两个条件变成可等待、可唤醒的并发协议。本文用 Go 实现一个固定容量任务队列,说明 Wait 为什么必须放在条件循环中,以及满队列、空队列和关闭状态如何安全退出。228 收藏