Go语言技术文章
-
Go text/template 执行成功但页面为空,通常不是 Execute 没运行,而是写入目标、模板入口、数据字段或空值分支出了偏差。本文给出从输出长度到 ExecuteTemplate 的排查顺序。197 收藏 -
Go 的 time.LoadLocation 返回 unknown time zone 时,先区分名称拼写问题与运行环境缺少 IANA 时区数据库,再按宿主机、容器和精简镜像选择修复方式。本文给出保留错误、加载嵌入时区数据和安全回退到 UTC 的实用写法。196 收藏 -
用 Go 原生 fuzz 测试给文本解析器加入种子语料、Fuzz 函数和错误分类,区分预期的输入错误与需要修复的崩溃、越界和状态不一致。196 收藏 -
解释 go test 的两种执行模式、(cached) 命中条件、count=1 对照方法和 go clean -testcache 的清理边界,帮助排查修改后结果不变。195 收藏 -
Go JSON Decoder 在 Decode 前调用 UseNumber,可将动态接口中的数字保留为 json.Number。本文说明低位丢失的排查方法、Int64 范围与错误处理,以及从文本转换大整数的边界。194 收藏 -
说明Badger迭代器持有的底层引用、预取任务与活动计数,区分Close和事务结束,给出提前返回、循环扫描的清理写法及内存排查注意事项。193 收藏 -
用 Go 的 os.File.Truncate 调整文件字节长度,区分缩短、扩展、I/O 偏移不变和 PathError 错误处理,附带可复用的最小示例与回归检查清单。193 收藏 -
Go archive/tar 可以读取稀疏归档并暴露 SparseHoles,但标准 Writer 当前不能直接把 sparse map 编码成 GNU/PAX 稀疏条目。本文说明正确的 Header 表达、普通 tar 写法和兼容方案。193 收藏 -
Golang · Go问答 | 1天前 | 反射 · panic · go · 类型转换 · Go strconv reflect.Value.Convert CanConvert ConvertibleTo
reflect.Value.Convert 只执行 Go 允许的类型转换,不负责把字符串解析成数字。本文说明 CanConvert 与 ConvertibleTo 的使用边界、strconv 解析文本的方法,以及 slice 转 array pointer 时必须补充的长度检查。192 收藏 -
Go encoding/hex 的 DecodeString 按两个十六进制字符组成一个字节,输入为奇数长度时会返回 ErrLength。本文结合入口校验、错误区分和协议选择,说明怎样处理半字节输入。191 收藏 -
Go log/slog 用 Group 组织单条日志字段,用 WithGroup 和 With 复用公共字段,再用 GroupAttrs 接入动态 Attr 切片。本文按 request、user 和 order 场景说明字段层级与基准指标的检查方法。189 收藏 -
Go TLS 客户端默认使用主机信任根,不会凭空信任自签名根证书。本文解释 RootCAs 的来源,并给出保留系统根证书、追加私有根证书的安全写法。189 收藏 -
Go HTTP 服务的 ReadHeaderTimeout 限制请求头读取,ReadTimeout 限制整个请求读取。本文说明零值回退与配置迁移,给出服务示例及日志定位方法,区分读取失败与业务耗时。188 收藏 -
Excel 日期本质上是序列数字,显示成日期依赖单元格格式。本文对比 Excelize 的原始读取、格式化读取、1904 日期系统、ExcelDateToTime 与 time.Time 写入方式,帮助你选对 API。186 收藏 -
Go mutex profile 默认不采样,先用 runtime.SetMutexProfileFraction 开启,再通过 pprof 的 mutex 数据定位锁竞争热点。本文解释采样比例、采集方式和栈信息判读,避免把 Lock 调用误当成唯一根因。186 收藏