Go语言技术文章
-
Go 的 path.Clean 适合规范化 URL 这类正斜杠路径:它按词法规则合并斜杠、移除点段并处理 ..,但不检查文件是否存在,也不替代权限校验。168 收藏 -
Go mewkiz/flac可通过ParseNext逐帧解码,再遍历Subframes与各声道Samples。本文给出原创同步消费函数,说明帧与采样计量、Next的区别、错误处理和文件关闭。168 收藏 -
Go TLS 客户端自定义 CA 不生效,通常是证书池、RootCAs 或 HTTP Transport 没有接通。本文按证书输入、TLS 配置和请求客户端三层定位问题,并给出保留系统根证书的配置方式。168 收藏 -
bufio.Reader.Peek 能查看固定长度前缀而不推进缓冲读取位置,但可能预读底层输入。通过四字节标识示例说明同一 Reader 的后续读取、短输入、ErrBufferFull 及返回切片的有效期。168 收藏 -
TCP 是字节流,单次 Read 不保证拿到完整网络帧。本文用 io.ReadFull 读取固定帧头和帧体,结合 binary.BigEndian 解析长度,并说明 EOF、UnexpectedEOF、超长帧和持续连接循环的处理边界。168 收藏 -
用 Context.Deadline 和 time.Until 计算 Go context.WithDeadline 的有效剩余时间,并区分无 deadline、提前取消、已经超时以及父 Context 更早截止等边界。168 收藏 -
Go io.MultiWriter可同步向多个目标写入同一份字节。本文用文件与摘要器示例说明如何复用分发器、编码暂存和批次缓冲,并保留短写、错误停止、尾批与关闭错误处理。168 收藏 -
Go channel 的关闭责任应由能证明不会再发送的一方承担。本文说明关闭后的发送与接收语义,给出单发送方和多发送方的 close owner、停止信号与 WaitGroup 组织方式,帮助排查 send on closed channel panic。168 收藏 -
Go 自定义类型实现 encoding.TextMarshaler 与 encoding.TextUnmarshaler 后,可以在文本编码边界复用同一套格式约定。本文用一个可读的标识类型说明方法签名、错误处理、JSON 发现规则和兼容测试。167 收藏 -
围绕 Go tls.Config.VerifyConnection 说明握手回调顺序、ConnectionState 观测、恢复会话与自定义证书校验的边界,给出可落地的记录和错误返回方案。167 收藏 -
把Go磁盘目录适配为fs.FS,用完整资源读取程序说明系统根路径、组件名称、工作目录、错误分类与符号链接边界。167 收藏 -
区分 Ants Release 关闭池与业务任务完成,通过完整 WaitGroup 批处理示例处理提交失败计数,并说明停止生产者、超时等待、任务取消和业务成功的不同含义。167 收藏 -
Go archive/tar 读取软链接时,Header.Name 是归档中的链接名,Header.Linkname 才是目标路径;TypeSymlink 没有普通文件数据体,Reader.Read 返回 EOF 不代表目标文件读取失败。167 收藏 -
Go csv.Writer 的 Flush 没有 error 返回值,必须通过 Error 读取底层写入失败。本文区分 Write、Flush、Error 和外层交付边界,给出生产级 CSV 导出写法与排查清单。167 收藏 -
Go json.Decoder 字段为空时,先看错误,再检查导出字段、JSON标签、大小写、嵌套层级、目标指针和输入流。区分缺失、null与空字符串,并说明严格模式的兼容取舍。166 收藏