Go语言技术文章
-
Go bufio.Reader 处理超长行时,关键是识别 ReadLine 的 isPrefix 语义并复制拼接片段;普通按行读取可用 ReadString 或 ReadBytes,同时设置单行大小上限,避免把缓冲片段误当成完整记录。107 收藏 -
Golang · Go教程 | 1个月前 | 文件处理 · 错误处理 · Go教程 · FieldsPerRecord ParseError Go encoding/csv CSV注释行 csv.Reader.Comment
Go encoding/csv 的 Reader.Comment 可以忽略行首直接出现注释字符的整行内容,再配合逐条 Read、FieldsPerRecord 和 ParseError 处理,把注释行、空行、有效记录与格式异常分开。107 收藏 -
Go 的 mail.AddressParser 可通过 mime.WordDecoder.CharsetReader 解析 RFC 2047 自定义字符集显示名。本文给出字符集白名单、UTF-8 转换、单地址与列表解析、错误回退和核对方法。107 收藏 -
Go 模块代理返回 404 和 410 时,命令通常都会按 GOPROXY 顺序回退;真正需要排查的是请求资源、分隔符和其他终止错误。本文用下载命令拆开判断路径。107 收藏 -
Golang · Go问答 | 3星期前 | 并发安全 · goroutine · Go问答 · Go结构化并发 runtime/secret并发读取 secret.Do goroutine Go密钥生命周期 WaitGroup敏感数据
runtime/secret 会让作用域内新建的 goroutine 继承秘密模式,但不会替你同步共享切片。本文用结构化并发说明密钥只读共享、worker 独立状态、公开结果复制、取消等待与平台降级的正确边界。107 收藏 -
用 Go unique.Handle 把规范化后的 HTTP 方法与路径组合成可比较身份,演示并发路由注册中的去重方式与适用边界。107 收藏 -
Go time.ParseDuration 只接受固定的 duration 单位。本文从配置输入场景出发,说明中文单位、未知单位、缺少单位和合法复合时长的处理方式,并给出清晰错误提示的写法。107 收藏 -
Go SJSON 的 Set 会把 Go 值按 JSON 规则编码,SetRaw 则直接写入原始 JSON 片段。本文用数字、字符串、数组和对象示例说明两者的类型边界,并给出动态 raw 输入的校验方案。107 收藏 -
Go 循环中使用 defer 关闭文件时,defer 会等所在函数返回才执行,文件多时可能造成句柄累积。本文用局部函数和显式 Close 两种方式改写,并说明错误处理与适用边界。107 收藏 -
Go range 遍历 nil channel 会一直阻塞。通过入口检查、初始化遮蔽排查和通道状态区分定位原因,再为接收接口约定关闭责任、空结果和取消方式。107 收藏 -
Go 的 json.Encoder 默认会转义 JSON 字符串中的 &, < 和 >。本文用输出对比说明 SetEscapeHTML(false) 改变了什么,并给出普通接口、日志与 HTML 嵌入场景的选择边界。107 收藏 -
Go build tags 没有选中预期文件,通常不是标签失效,而是文件头位置、文件名后缀、布尔表达式、目标环境或 -tags 参数其中一层没有匹配。本文给出一套用 go list 定位实际文件集合的排查方法。107 收藏 -
Go 1.23 起可以用 sync.Map.Clear 一次删除并发临时索引的全部条目。本文说明它与 Delete、普通 map clear 的适用边界,以及并发重建和版本兼容注意点。107 收藏 -
JSONPatch 的 move 不是把元素瞬移到原数组坐标,而是先从 from 删除,再按删除后的数组执行 add。本文用 Go 示例说明同一数组中向后移动时目标索引为什么通常要减一,以及连续操作和 test 的处理方式。107 收藏 -
本文围绕运行时正则配置的常见故障,说明怎样使用 regexp.Compile 返回可诊断错误,在配置加载阶段保留规则名称和原始语法错误,并区分编译失败与文本匹配不到。107 收藏