Go语言技术文章
-
Go filepath.Glob 返回空切片不一定是异常:模式写错才会返回 filepath.ErrBadPattern,而目录不存在、没有匹配项和部分文件系统错误可能都表现为空结果。本文给出清晰的判断与补查方式。189 收藏 -
bytes.Buffer.Truncate 处理的是未读窗口:它保留前 n 个未读字节并丢弃后面的内容。本文区分 Read、Next、Truncate、Reset 的边界,说明如何消费前缀、截断尾部以及避免参数越界和切片失效。189 收藏 -
从 sync.Pool.Put 的 nil 快速返回讲清未类型化 nil、typed nil 与 Pool.New 的边界,给出可复用临时对象时的类型断言、状态清理和安全兜底写法。189 收藏 -
Go ReverseProxy 转发后 Host 变化,通常是 Rewrite 中调用 SetURL 后出站 Host 跟随目标主机所致。本文区分 Request.Host、URL.Host 与 X-Forwarded-Host,并给出保留入站 Host、受控转发和迁移检查方法。189 收藏 -
Go x/text/number 的 Percent 把 1.0 定义为 100%,所以 0.12 会显示为 12%。本文区分比例与百分数输入,说明语言环境、小数位选项和重复放大的排查边界。189 收藏 -
解释Go请求体预读后出现EOF的原因,用有界缓存和独立Reader恢复下游读取,区分服务端Body与客户端GetBody,并说明读取失败、内存成本和关闭责任。189 收藏 -
本文从大文件不应整段复制的场景出发,用 Go io.SectionReader 按绝对偏移和区间长度创建读取窗口,说明 Read、ReadAt、Seek、Size、EOF、文件关闭和 ReadAll 的边界。189 收藏 -
Go HTTP 服务的 ReadHeaderTimeout 限制请求头读取,ReadTimeout 限制整个请求读取。本文说明零值回退与配置迁移,给出服务示例及日志定位方法,区分读取失败与业务耗时。188 收藏 -
io.Copy 会优先走源端 WriterTo,再看目标端 ReaderFrom;本文用原创示例说明 ReaderFrom 如何改变复制路径,以及如何用接口包装固定行为。188 收藏 -
Go netip.Prefix.Bits 直接返回 CIDR 前缀长度,合法范围取决于 IPv4 或 IPv6 地址族;无效 Prefix 返回 -1。本文用 ParsePrefix、PrefixFrom 和 Masked 说明读取、校验与地址规范化的边界。188 收藏 -
Go 1.24 引入的 os.Root 可以把文件操作限制在指定目录内。本文用 Root.Stat 获取 FileInfo,判断普通文件、目录和符号链接,并说明相对路径、越界路径、错误处理以及 Stat 与 Lstat 的区别。188 收藏 -
解释 Go jsonschema 中 format 注解与断言的区别,示范显式草案、AssertFormat、自定义格式注册、错误记录与上线检查。188 收藏 -
Go strconv.AppendQuote 会把字符串追加成带双引号的 Go 字符串字面量。本文用日志字段示例说明如何复用 []byte 缓冲区、处理引号和控制字符,并比较 AppendQuote、Quote、QuoteToASCII 与 AppendQuoteRune 的使用边界。188 收藏 -
Go archive/tar 默认可能把 ModTime 按秒写入;指定 FormatPAX 后,归档可以保留文件修改时间的亚秒部分。本文给出写入、读取核对和格式边界。188 收藏 -
Go 的 http.Cookie SameSite 只负责跨站发送限制,SameSite=None 还必须配合 Secure、HTTPS 和前端 credentials。本文用一个可复用的最小示例拆开这些条件,说明 Cookie 没有带上的常见原因与排查顺序。188 收藏