Go语言技术文章
-
用 Go 的 bufio.Scanner 自定义 SplitFunc,按换行切出带 [source] 前缀的日志记录,正确处理 atEOF、格式错误和超长 token。129 收藏 -
Go io.ReadFull 读取固定长度消息时,空输入返回 io.EOF,读到一部分后提前结束返回 io.ErrUnexpectedEOF。本文用帧头、帧体示例说明如何分类处理短读、错误包装和重试边界。277 收藏 -
Go encoding/gob 传递接口值时,必须让发送端和接收端注册相同的具体类型。本文用可运行的原创示例说明 gob.Register、接口地址、指针和值类型及 RegisterName 的边界。151 收藏 -
Go 读取标准输入遇到 io.EOF 通常表示输入自然结束,不是错误日志。本文用逐行读取和固定长度读取对比 EOF、真实 I/O 错误与 ErrUnexpectedEOF 的处理边界。195 收藏 -
通过实现 json.Marshaler,让 Go 枚举在 JSON 中输出可读文本,并对未知整数返回明确错误。367 收藏 -
Go 的 os.Getenv 无法区分环境变量未设置和显式空值,本文用 os.LookupEnv 保留 exists 状态,并给出默认值、校验和测试的处理方式。147 收藏 -
Go 的 http.Flusher 只能把服务端已缓冲的数据交给网络层,不能保证代理和客户端立刻呈现。本文用最小 SSE 示例说明如何检测 Flusher、正确 Flush,并排查包装器与代理缓冲。468 收藏 -
Go 的 0644 是 Unix 权限表达式。Windows 上 os.Chmod 只使用 0o200 位控制只读属性,用户和组级访问控制要交给 Windows ACL。137 收藏 -
Go 的 HTTP Trailer 不在 Response.Header 中,客户端要先把 Body 读到 io.EOF,再从 Response.Trailer 读取响应体末尾的字段;服务端则要在写响应前声明 Trailer。234 收藏 -
Go 中 path 适合 URL 等正斜杠协议路径,filepath 适合 Windows 本地文件路径。本文说明反斜杠字符串写法,以及 ToSlash、FromSlash 的跨平台转换边界。159 收藏 -
Go archive/tar 不会替你决定是否跟随符号链接。本文用 Lstat、WalkDir 和 tar.Header 演示如何原样归档链接,并在解包前校验目标路径。475 收藏 -
Go 编译出现 undefined: C 时,先检查 import \"C\"、CGO_ENABLED、build tag 和 go list 文件清单,再区分 cgo 文件未入选与 C 声明缺失。183 收藏 -
Go image/draw 裁固定比例缩略图的关键,是先按目标比例计算源图裁切矩形,再用 draw.Draw 对齐源点复制到固定画布,而不是直接拉伸原图。本文给出中心裁切、尺寸限制和异常排查方法。115 收藏 -
Go 的 -ldflags -X 只能写入满足条件的包级 string 变量,不能修改 const。本文用最小示例说明正确声明、完整 import path、初始化边界和不生效时的排查方法。108 收藏 -
Go image.Decode 会根据已注册解码器的文件头特征识别图片格式并返回 format。本文说明空白导入、Reader 位置、DecodeConfig 和上传输入的资源限制。399 收藏