Go语言技术文章
-
Go encoding/csv 默认会检查每条记录的列数。不齐列数据要保留时,可将 FieldsPerRecord 设为 -1,再在 Read 循环中按表头长度标记、补齐并审计异常记录。203 收藏 -
bindParam 绑定的是变量引用,真正取值发生在 execute 时。循环中反复改写或复用变量时,容易让多个参数都落到最后一次值;本文用批量写入示例说明原因,并给出 bindValue 与固定变量复用两种稳定写法。298 收藏 -
Go 1.20 起 fmt.Errorf 支持多个 %w,可把多个底层错误保留为可遍历分支。本文对比单错误链、多错误包装与 errors.Join 的边界,并给出 errors.Is、errors.As、go.mod 和 CI 的迁移检查清单。342 收藏 -
Go 1.27 允许具体方法声明自己的类型参数,但接口方法仍不能声明类型参数。本文从作用域、接口边界、函数迁移和兼容性清单四个方面说明升级后应先检查哪些代码。252 收藏 -
Go 使用 bufio.Writer 写文件时,Write 可能只把数据放入内存缓冲区。本文解释 Flush、Close 与 File.Sync 的职责边界,给出正确的错误处理顺序和文件写入结束清单。420 收藏 -
用 Responses API 的 strict JSON Schema 约束工具参数,再通过 function_call_output 回传可解析结果,并说明如何单独约束最终 JSON 回复。274 收藏 -
Go errors.As 匹配自定义错误时,目标变量的值类型、指针类型和地址层级必须与错误的动态类型一致。本文用包装错误示例说明为什么拿不到值,以及如何排查 nil 指针和类型错配。418 收藏 -
Go 使用 bufio.Reader 逐行读取时,ReadString 和 ReadBytes 会保留换行分隔符;本文对比 ReadLine、Scanner,并给出正确处理 CRLF 与 EOF 最后一行的写法。498 收藏 -
介绍 Redis XPENDING 的摘要和扩展查询,查看消费组中按消息 ID 最早的未确认消息,并区分最老 ID与空闲最久的 pending 记录。259 收藏 -
errors.Join 返回的是可遍历的错误树,业务判断应直接使用 errors.Is;需要展示全部原因时再读取 Unwrap() []error,不能依赖字符串拆分或 errors.Unwrap。495 收藏 -
MySQL JSON_TABLE 用 FOR ORDINALITY 为展开后的数组元素生成从 1 开始的序号。本文说明一基与零基位置、嵌套数组中的父子序号,以及先展开后过滤和路径筛选对原始位置的影响。139 收藏 -
用 Go 的 bufio.Scanner 自定义 SplitFunc,按换行切出带 [source] 前缀的日志记录,正确处理 atEOF、格式错误和超长 token。129 收藏 -
分享一组薄荷绿透明叶脉手机壁纸提示词:用近黑 OLED 背景、顶部锁屏留白和受控透光做出主图,再用午夜蓝与右下斜向构图制作明显变体。245 收藏 -
Go io.ReadFull 读取固定长度消息时,空输入返回 io.EOF,读到一部分后提前结束返回 io.ErrUnexpectedEOF。本文用帧头、帧体示例说明如何分类处理短读、错误包装和重试边界。277 收藏 -
小型零售店盘点出现差异时,先固定盘点时点,再按商品编码核对销售、退货、报损和内部移动记录,最后决定是否调整库存。397 收藏