Go教程技术文章
-
Go netip.Addr.Is4 直接判断 Addr 是否为原生 IPv4;IPv4 映射 IPv6 会返回 false,需要先用 Is4In6 识别,或用 Unmap 归一化后再判断。469 收藏 -
Go roaring 计算压缩位图交集时,先区分 And 是否会修改接收者,再按需求选择 Clone+And、AndCardinality 或 Intersects。本文用用户集合示例说明结果、数量、真假三种输出的工程取舍。469 收藏 -
Go image.Rectangle.Canon 只能修正 Min/Max 的反向坐标,不能把零宽、零高或相交为空的矩形变成有效裁剪范围。本文用 Dx、Dy、Empty 和裁剪前检查定位问题。469 收藏 -
go fix inline 不是普通编译器优化,而是依据 //go:fix inline 注释对兼容入口提出源码替换建议。本文用函数、常量、类型别名和测试文件四个场景说明识别条件,并给出安全预览与落盘方法。468 收藏 -
Go os.Chmod 传入符号链接路径时会跟随链接修改目标文件。本文用 Stat、Lstat 和 Readlink 区分目标权限、链接对象与指向关系,并给出部署脚本的检查顺序。468 收藏 -
Go crypto/rand.Int 返回 [0,max) 内的均匀随机整数。本文说明 rand.Reader、big.Int、闭区间 span、非法范围检查和大整数转换的边界。468 收藏 -
Go text/template 默认会继续执行缺失的 map 字段。本文说明如何用 Option("missingkey=error") 让 Execute 立即返回错误,并比较 default、zero 与 error 的适用边界。468 收藏 -
Go 比较敏感摘要时,应对等长字节序列使用 crypto/subtle.ConstantTimeCompare;HMAC 校验优先使用 hmac.Equal。本文说明长度不一致会立即失败、返回值如何判断,以及摘要编码和最小测试的边界。468 收藏 -
Go compress/gzip Writer 的 Write 可能把错误留在压缩过程或 Close 收口阶段。本文用错误分层、临时文件和原子提交说明如何丢弃半成品、保留根因并安全清理底层资源。468 收藏 -
Go 反射设置结构体字段时,关键不是直接调用 Set,而是先取得可寻址值,再判断字段存在性、CanSet 和类型可赋值性。本文用一个小型安全写入函数说明可导出字段的正确处理方式。467 收藏 -
Go 的 time.LoadLocation 找不到 IANA 时区数据时,不应静默继续。本文说明时区数据来源、容器部署处理,以及 UTC、固定偏移和直接失败三种明确降级策略。467 收藏 -
Go cmp.Or 适合把多个同类型候选值按优先级取第一个非零值,常用于命令行、环境变量和默认配置回退。本文说明它的用法、零值边界,以及为什么它不是字段级配置合并器。467 收藏 -
Go 的 io/fs.ValidPath 只接受不带根的斜杠路径。本文用 os.DirFS 建立受限根目录,先校验文件名再用 fs.ReadFile 读取,并说明 ..、符号链接、权限和运行身份的边界。467 收藏 -
用 Go go-vcard 保存多个 EMAIL 字段,并通过 PREF 参数指定优先邮箱;同时说明 Add、Set、PreferredValue 和 vCard 4 转换时的边界。466 收藏 -
用 Go go-echarts 配置 inside、slider 和组合缩放组件,讲清 Start、End、Throttle、FilterMode 与坐标轴绑定的选择方法。466 收藏