Go语言技术文章
-
Go io.NewSectionReader 可以把 ReaderAt 限定在指定偏移和长度内读取。本文说明 off 与 n 的范围表达、ReadAt 的相对偏移、EOF 判断以及并发和资源生命周期边界。148 收藏 -
Go http.Client 默认最多连续跟随 10 次重定向。本文用 CheckRedirect 和 len(via) 设置业务上限,并比较返回错误与保留最后一次 3xx 响应两种处理方式。147 收藏 -
讲清 Go csv.Writer 如何用 UseCRLF 固定 LF 或 CRLF 行尾,并在 Flush 后通过 Error 确认最后一批 CSV 数据已经交给底层 writer。145 收藏 -
Go sort.Search 返回的是第一个满足条件的索引,不是目标值。本文用一个有序档位查找小项目,讲清索引读取、精确命中、插入位置与 n 的边界处理。145 收藏 -
Go 读取 gzip 不只是调用 gzip.NewReader:本文从单个 .gz 文件讲到串联 gzip 成员,说明 io.EOF、ErrChecksum、Multistream(false) 和 Reset 应该怎样配合。144 收藏 -
Go 的 http.Cookie 设置 SameSite 后,浏览器是否发送还要看站点关系、请求凭据、Secure 和 Path。本文按请求链路定位 Cookie 不见的原因。144 收藏 -
crypto/rand.Read 的契约是填满目标切片。本文说明如何处理长度判断、自定义 io.Reader 的短读、io.ReadFull 以及固定长度随机令牌的业务边界。143 收藏 -
Go 的 string 可以携带任意字节,协议入口不能仅凭类型就认为它是合法文本。本文用 unicode/utf8.ValidString 区分完整 UTF-8、截断序列和业务上不允许的内容,并给出拒绝与记录的落地写法。143 收藏 -
Go net.ParseIP 解析 IPv4 时返回十六字节是因为采用了 IPv4-mapped IPv6 表示。本文说明如何用 To4 判断地址族、转换四字节数据,并区分 Equal、To16、ParseCIDR 与 netip 的使用边界。142 收藏 -
Golang · Go问答 | 4天前 | pprof · Go问答 · go tool pprof Go pprof.Lookup Go运行时剖面导出 pprof.WriteTo Go heap剖面
Go pprof.Lookup 可以按名称取得运行时剖面,再通过 WriteTo 导出为 pprof 文件。本文给出 nil 判断、debug 参数、文件关闭和 go tool pprof 核对的完整写法。141 收藏 -
Golang · Go问答 | 5天前 | 依赖管理 · 工程实践 · Go问答 · Go workreplace go.work replace作用域 Go多模块工作区 Go本地依赖替换 Go CI依赖解析
Go 没有 go workreplace 子命令,通常指 go.work 中的 replace。本文用 use、replace、GOWORK 和 go list -m 说明工作区成员、本地替换、版本范围与 CI 下游边界。140 收藏 -
用 Go flag.Value 接收自定义命令行参数时,Set 应该如何返回非法输入错误?本文用先校验后提交的写法,说明 Parse、手动 Set 与错误定位的边界。140 收藏 -
用 iter.Seq2[int, error] 同时传出行号和校验错误,说明 range、yield、continue 与 break 的边界,以及 Go 1.23 语言版本要求。140 收藏 -
Go embed.FS 的 glob 目录要区分构建期与运行期://go:embed 模式必须匹配文件或非空目录,fs.Glob 的零匹配则应单独作为业务分支处理。本文给出稳定入口文件、隐藏文件规则和错误分层方案。140 收藏 -
Go 的 log.Fatal 不是普通错误日志,它在输出消息后调用 os.Exit(1)。库代码一旦使用它,调用方进程会被直接终止。本文说明原因、defer 边界、正确的 error 返回方式,以及应用入口该如何接管退出策略。139 收藏