Go语言技术文章
-
Go strings.CutSuffix 适合处理明确位于字符串末尾的后缀。本文用文件名清理场景说明 before 与 found 的含义,并区分未匹配、空后缀、大小写和路径解析边界。192 收藏 -
go-pretty/table 用 SortBy 接收多个排序规则,前面的规则优先,只有当前列相等时才比较下一列。本文从状态、优先级、更新时间的真实场景出发,说明列名与列号、数字与文本模式、忽略大小写和 CustomLess 的组合方式。192 收藏 -
Golang · Go教程 | 1星期前 | 字符串 · unicode · Go教程 · Go unicode 单词边界 文本分段 uniseg FirstWordInString Graphemes
Go uniseg 按 Unicode Standard Annex #29 提供单词边界切分能力。本文用 FirstWordInString 连续提取文本片段,说明 state 与 rest 的配合、标点和空格的边界表现,以及什么时候应该改用 Graphemes 迭代器。192 收藏 -
Go crypto/ecdh.NewPublicKey 会按指定曲线校验公钥字节并返回 PublicKey。本文说明 NIST 曲线与 X25519 的编码边界、解析错误处理,以及如何在 ECDH 前保证本地私钥和对端公钥使用同一条曲线。192 收藏 -
用 types.NewTypeParam 创建类型参数,再通过 NewSignatureType 的声明列表和参数元组构造泛型签名。示例说明同一类型参数对象的复用、旧接口迁移和接收者边界。192 收藏 -
go/types 的 TypeAndValue 同时保存表达式类型与常量值,但 IsType 和 IsValue 判断的是不同语义。本文结合常量、变量、nil、类型转换和内建函数标识符,说明静态分析时怎样组合这些方法。192 收藏 -
用 Envelope[T] 包装不同结果时,T any 只解决静态复用,json.Marshal 仍有运行时可编码边界。本文用结构体、指针和不可编码值说明如何保留 error 并收窄业务约束。192 收藏 -
Go encoding/hex 的 DecodeString 按两个十六进制字符组成一个字节,输入为奇数长度时会返回 ErrLength。本文结合入口校验、错误区分和协议选择,说明怎样处理半字节输入。191 收藏 -
FormatFloat 返回字符串,AppendFloat 追加到字节切片。通过读数文本示例比较结果类型、相同格式参数、缓冲区复用和异步交付责任,说明容量不是上限、追加不等于零分配。191 收藏 -
Go 给错误添加上下文时,用 fmt.Errorf 的 %w 保留哨兵错误,再用 errors.Is 沿包装链或错误树匹配目标;不要依赖错误文本,也不要把 errors.Is 和 errors.As 混用。191 收藏 -
Go 泛型里的类型参数不是运行时接口值,直接写 v.(string) 会失败。本文用最小复现解释类型约束、动态类型和 any(v).(T) 的区别,并给出安全的类型分支写法。191 收藏 -
Go archive/tar 的 Reader.Next 会把作用于文件的 PAX 扩展记录合并到 Header。本文说明怎样读取 PAXRecords、区分普通字段与自定义键,并处理 EOF、坏扩展头和全局头边界。191 收藏 -
Go testing.T.SkipNow 结束的是当前测试函数的后续语句,不会跳过已经登记的 t.Cleanup。本文拆解 SkipNow、runtime.Goexit、子测试和后台 goroutine 的生命周期边界,给出资源登记与跳过用例复查清单。191 收藏 -
go env -changed 只显示 Go 工具链有效值与默认值不同的设置。本文解释它的比较边界、空结果含义,并配合 go env -json、-w、-u 快速定位和清理自定义配置。191 收藏 -
从方法、主机、路径段、尾斜杠、通配符和转义规则解释 Go ServeMux 为什么未命中,并用 Handler 返回值定位实际匹配模式。191 收藏