Go语言技术文章
-
Go PNG 解码失败可用 errors.As 区分 FormatError 与 UnsupportedError,并保留 EOF、读取及压缩数据错误。本文给出错误链处理示例,说明值类型匹配、%w 包装与 DecodeConfig 的范围。368 收藏 -
Go bufio.Scanner 的空结果可能来自空输入、空行、空白词、超长 token 或自定义分割规则。本文用最小实验区分 Scan、Text 和 Err 的边界,并给出 Buffer 与排查清单。368 收藏 -
Golang · Go问答 | 4天前 | 标准库 · go · Go Content-Disposition mime/multipart NextPart NextRawPart quoted-printable
对比 Go multipart.Reader 的 NextPart 与 NextRawPart,说明 Content-Disposition 并非核心差异,重点解释 quoted-printable body 的透明解码边界与入口选择。367 收藏 -
通过可取消的四模式实验区分Go channel接收阻塞、nil通道和关闭状态,结合通道身份、发送路径与等待关系排查,并说明超时、len和goroutine栈能证明的范围。366 收藏 -
Go ast.FieldList.NumFields 统计参数或字段数量,List 长度统计声明组节点。本文用分组参数解释差值,说明匿名项、空列表和可变参数的计数语义,以及静态分析工具的调整方式。366 收藏 -
Go os.CreateTemp 可以用随机文件名安全创建临时文件,但关闭文件和删除路径仍由调用方负责。本文说明目录参数、星号模式、扩展名保留、错误处理,以及单文件和临时目录的选择。365 收藏 -
说明Go cgo中GoString与GoStringN的选择,用完整示例区分NUL文本和带长度数据,讲清复制、C内存释放责任、内嵌零字节与编码边界。365 收藏 -
用 Go 的 image.Point.In 判断坐标是否属于 image.Rectangle,理解左闭右开边界、非零起点和空矩形,并把判断接入点击与裁剪处理。365 收藏 -
Go ast.Inspect 不负责关闭文件或清理节点缓存。本文用短作用域计数示例说明资源所有权,区分 AST 引用保留与文件句柄问题,并解释回调返回 false、收到 nil 的真实含义。365 收藏 -
Go mime/multipart.Reader 读取不到字段或文件时,先检查 Content-Type 中的 boundary 和请求体是否已被消费,再选择 NextPart 或 ReadForm。本文用一个最小 HTTP 示例说明流式读取、io.EOF、部件消费和模式混用的排查方法。365 收藏 -
用 Go unique.Make 将可比较字符串规范化为 unique.Handle,解释句柄比较、Value 取值、并发安全和不适用场景。364 收藏 -
Go hash.Hash.Sum 会把当前摘要追加到传入切片末尾,不会覆盖已有前缀,也不会改变哈希状态。本文说明 dst、len、cap 与 Size 的关系,并给出安全的摘要追加写法。364 收藏 -
Go os/exec 的 Cmd.ProcessState 只能在子进程成功启动并完成 Run 或 Wait 后读取。本文比较 Run 与 Start 加 Wait,说明怎样区分启动错误、非零退出和成功退出,并用 ExitCode、Success、Exited 处理状态边界。363 收藏 -
strings.CutSuffix 返回去掉后缀后的字符串和 found 标志。后缀未命中时返回原字符串与 false;空后缀是一个特殊的命中场景,返回原字符串与 true。本文用最小写法和业务封装说明如何把两种情况分开处理。363 收藏 -
Go crypto/sha256.New224 返回 SHA-224 的 hash.Hash,摘要长度由 Size224 固定为 28 字节。本文结合分段写入、Sum 追加语义和一次性 Sum224,说明如何正确输出摘要并避免把切片前缀或哈希状态理解错。363 收藏