Go教程技术文章
-
Go strconv.AppendQuote 可以把字符串以带引号的转义形式追加到已有 []byte。本文从容量预算、Quote 对比、控制字符和无效 UTF-8 边界出发,给出低分配写法与 Benchmark 记录方法。372 收藏 -
Go strconv.AppendQuoteRuneToASCII 可以把单个 rune 追加为带单引号的 ASCII Go 字符字面量。本文说明如何接住返回切片、处理非 ASCII 转义,并区分它与 QuoteRune、AppendQuoteRune 等相邻 API。372 收藏 -
Golang · Go教程 | 1天前 | 泛型 · Go教程 · 类型系统 · Go go/types 泛型约束 types.NewTypeParam types.TypeParam SetConstraint
使用 go/types.NewTypeParam 创建类型参数时,可以先传入 nil,再在约束接口完全定义后调用 SetConstraint。本文按初始化顺序说明 NewTypeName、NewInterfaceType、Complete、Constraint、Underlying 与 Named.SetTypeParams 的关系。372 收藏 -
Go unicode.IsControl 面向 rune 判断 Unicode 控制字符。本文用 strings.Map 写出保留换行、回车和制表符的过滤函数,并说明零宽字符与非法 UTF-8 不在该函数范围内。372 收藏 -
bytes.Buffer.Bytes 返回的是缓冲区底层数据切片,不是独立副本。本文用复用、Reset 和 copy 三个边界说明什么时候可以读取,什么时候必须先复制。371 收藏 -
Go 1.24 引入的 os.Root 将文件操作约束在指定目录内。本文用 OpenRoot、Root.Open 和相对路径示例说明它如何处理 ..、绝对路径与符号链接,并给出可复现的错误边界检查。371 收藏 -
用 Go 的 time.Ticker 配合 context 和 select 驱动周期任务,讲清慢任务下 tick 的处理、Stop 不关闭 channel 的语义,以及退出时等待 Goroutine 收尾的写法。371 收藏 -
用 Go crypto/rand 生成固定长度的密码学随机字节,编码为 URL 安全令牌,并说明 rand.Read 与自定义 Reader 的错误处理差异。371 收藏 -
Go log/slog 的 Attr.Equal 可以按键和值判断两个结构化字段是否一致。本文用测试和 Handler 场景说明普通值、分组值、动态 LogValuer 与零值属性的比较边界。371 收藏 -
Go 的 time.Date 遇到夏令时重复或缺失的当地钟点时,不保证选择哪一侧时区。本文区分墙上时间与绝对时刻,说明如何显式保留偏移、制定消歧策略,并避免把规范化结果误当成用户意图。371 收藏 -
Golang · Go教程 | 3星期前 | 错误处理 · 模板 · Go教程 · html/template · 模板渲染 Go html/template missingkey 模板缺失字段 Execute错误
Go html/template 默认可能把 map 缺失键继续渲染,开发阶段容易把数据问题藏到页面里。本文比较 missingkey=default、zero、error 的差异,给出严格配置位置、Execute 错误处理和环境选择方法。371 收藏 -
Go 的 time.Time JSON 默认使用 RFC3339 字符串并保留偏移量,但不会保留 IANA Location 名称。本文拆开瞬时点、显示时区和接口协议,说明 UTC、ParseInLocation 以及显式时区字段的选择。371 收藏 -
用 Go http.Client、Transport 和 context 拆分连接、TLS、响应头与整体请求超时,配合错误定位和连接池清单完成可维护配置。371 收藏 -
Go crypto/x509 CertPool.AddCertWithConstraint 可以把自定义约束绑定到某个根证书。本文用租户域名场景说明如何读取 Verify 传入的整条证书链、拒绝不符合范围的链,并处理回调并发与验证边界。371 收藏 -
本文说明 Go http.Request.BasicAuth 的三个返回值,演示如何区分认证头解析成功与账号校验通过,并整理 401、HTTPS、WWW-Authenticate 和日志脱敏边界。371 收藏