Go教程技术文章
-
在 Go 中用 crypto/rand.Read 生成固定长度的加密安全随机字节,说明切片长度、十六进制与 Base64 编码、错误边界,以及它和 math/rand 的使用区别。443 收藏 -
Go 判断链路本地 IP 时,可以先用 netip.ParseAddr 解析文本,再调用 Addr.IsLinkLocalUnicast。本文用 IPv4、IPv6 和带 zone 的 IPv6 示例说明返回值,并区分私有、回环、组播和无效地址。443 收藏 -
Go regexp.Expand 使用匹配索引从原文取出捕获组,并按模板追加到字节切片。本文通过资源标签示例说明变量边界、返回值、缺失组和批量展开的注意事项。443 收藏 -
说明 Go archive/zip.FileHeader.SetModTime 的使用方式、UTC 转换、MS-DOS 时间精度和 Modified 字段迁移边界。443 收藏 -
说明 snowflake.ID 如何用 Base58 生成可传输文本,再用 ParseBase58 还原编号,并梳理字符表、错误处理与排序语义边界。443 收藏 -
Go os.OpenFile 的 O_SYNC 会影响写入的同步语义,但它不是事务或跨文件原子提交。本文用 O_APPEND、O_CREATE、f.Sync 和 Close 对比写入配置、性能成本与资源错误处理边界。443 收藏 -
用 Go 1.23 的 iter.Pull 把 iter.Seq 转成 next/stop 逐项读取,覆盖 ok 判断、提前退出和 defer stop 的可复用写法。443 收藏 -
Go huh 给输入框添加字段校验函数的关键是调用 Input.Validate,把字符串规则返回为 error;本文用空值、长度与业务约束说明如何组合校验,并处理错误显示、Value 绑定和可访问模式边界。442 收藏 -
用 cmpopts.EquateApprox 为 go-cmp 配置相对容差、绝对容差和接近零时的兜底边界,并说明 Equal、Diff、float32、NaN 与无穷大的排查方法。442 收藏 -
Go io.NewSectionReader 将 ReaderAt 限制在指定偏移和长度内,掌握 Read、ReadAt、Seek、Size 与 Outer 的边界语义。442 收藏 -
Go http.Request.Write 会把 Request 的请求行、请求头和请求体写成 HTTP/1.1 报文。本文用缓冲区示例说明 URL、Host、Content-Length、分块传输、Body 关闭,以及普通写出和代理写出的区别。442 收藏 -
Go 标准库 net/netip 可以先用 ParsePrefix 解析 CIDR,再调用 Prefix.Contains 判断 IP 是否属于指定网段。本文给出 IPv4、IPv6、地址族不匹配、IPv6 zone 和前缀规范化的实用边界。442 收藏 -
Go go-imap 使用 FetchItemBodySection 描述邮件正文范围,从 FetchItemDataBodySection.Literal 读取分段内容;本文说明 MIME 部件、Partial 字节区间、FetchCommand 消费方式,以及如何交给 go-message/mail 解析正文和附件。442 收藏 -
Go crypto/subtle.ConstantTimeLessOrEq 只适合比较非负且不超过 2^31-1 的 int。本文结合一个小型范围判断封装,说明它的 0/1 返回值、输入边界和与普通 <=、ConstantTimeCompare 的区别。442 收藏 -
Go image/png.Encoder.BufferPool 可以复用 PNG 编码过程中的临时 EncoderBuffer。本文用 sync.Pool 适配 Get/Put,说明批量编码接入方式,以及并发、错误路径、超大图片和固定容量边界。441 收藏