Go教程技术文章
-
Golang · Go教程 | 3星期前 | 错误处理 · TLS · Go教程 · Go crypto/x509 证书过期 主机名错误 CertificateInvalidError HostnameError
Go 的 crypto/x509 中,证书过期通常通过 CertificateInvalidError 的 Expired 原因识别,主机名不匹配则通过 HostnameError 识别。本文比较 Verify、VerifyHostname 和字段检查的边界,并给出 errors.As 分流示例。431 收藏 -
Go slices.Chunk 会把切片按最多 n 个元素分成连续子切片,最后一组不足 n 个时会原样保留,不会补零或丢弃。本文说明尾组、空输入、非法 n 与子切片容量的处理边界。431 收藏 -
fmt.Appendf 可以把错误的可读文本追加到 []byte,但不能像 fmt.Errorf 的 %w 那样保留可追踪的错误链。本文用日志、协议缓冲和 Writer 场景说明两者如何配合。431 收藏 -
Go Lip Gloss 的 Width 是应用 Margin 前的块宽度,Padding 和 Border 都会占用这段空间。本文按内容区、框架开销和终端单元格测量拆开计算,并整理中文文本、超宽内容与回退排查方法。430 收藏 -
本文用一个最小 Go 结算示例说明 shopspring/decimal 如何通过 RoundBank 实现银行家舍入,涵盖字符串金额解析、保留两位小数、中点取偶数、负数与 StringFixed 展示边界。430 收藏 -
使用 Squirrel Eq 构造可选筛选条件,通过完整函数区分省略、false、0、SQL NULL 和 IN 列表,并说明固定列名、占位符及 SQL 与 args 配对的边界。430 收藏 -
Golang · Go教程 | 1星期前 | 错误处理 · go · encoding/json · Go errors.Is errors.As Unwrap json.MarshalerError
json.Marshal 调用自定义 Marshaler 失败时会包装为 MarshalerError。本文用一个可比较的底层错误演示 Unwrap、errors.Is 和 errors.As 的组合处理方式。430 收藏 -
Go unicode.ToTitle 接收一个 rune 并返回对应的 Unicode 标题大小写形式。本文从 ToUpper、ToLower 的差异讲到 UTF-8 字节与 rune 的边界,给出可复用的逐 rune 转换写法。430 收藏 -
Go io.SectionReader.Outer 可以取回创建读取窗口时的底层 ReaderAt、起始偏移和长度。本文结合 Read、ReadAt、Seek 与 Size 说明它的职责边界和版本兼容取舍。429 收藏 -
iter.Pull 不负责管理调用方的缓冲区。本文用 dst[:0] 保留 slice 容量,演示如何逐项拉取、提前停止和处理切片别名,并说明何时直接使用 slices.AppendSeq。429 收藏 -
围绕 Go database/sql 连接池设置 MaxOpenConns、MaxIdleConns 与生命周期参数,并用 DBStats 的等待增量判断容量不足、连接占用和归还路径问题。428 收藏 -
Go unicode.SimpleFold 每次返回 Unicode simple case folding 等价链中的下一个 rune。本文用可终止的回环遍历收集等价字符,并比较它与 ToLower、ToUpper 及 UTF-8 校验的适用边界。428 收藏 -
Go log/slog.Logger 记录错误时要给 error 一个稳定的属性名,并补充操作和资源上下文。本文说明 !BADKEY 的原因、TextHandler 与 JSONHandler 的呈现边界,以及用 LogValuer 输出结构化错误字段的方法。428 收藏 -
Go runtime.KeepAlive 的关键不是延长所有对象的生命周期,而是在系统调用返回前保持带有 finalizer 的外部资源对象可达。本文用文件描述符和底层调用示例说明放置位置、适用边界与排查清单。427 收藏 -
Go json.Decoder.Token 会按顺序读取 JSON 流中的分隔符、键和值,并在自然结束时返回 io.EOF。本文说明返回类型、嵌套层级、Token 与 Decode 的配合方式,以及截断输入和非法结构的处理边界。427 收藏