Go语言技术文章
-
os.Readlink 返回的是符号链接保存的目标文字。本文说明相对目标为什么要以链接所在目录为基准,如何处理绝对路径和错误边界,以及何时改用 filepath.EvalSymlinks。481 收藏 -
用完整 Compose 示例按字节估算 strings.Builder 容量,提前检查输出预算后调用 Grow,说明中文长度、分隔符、追加容量语义和不预留时的回退方法。481 收藏 -
说明 database/sql/driver.DriverContext、OpenConnector 与 Connector.Connect(ctx) 的职责分工,给出按 DSN 创建连接、传递取消上下文和兼容 Driver.Open 的最小实现思路。481 收藏 -
go/constant 的 constant.Shift 不按 int 或 int64 固定宽度截断整数。左移超过机器字长时会保留为大整数,读取时应使用 ExactString、BitLen 和 Int64Val 的精确标志。481 收藏 -
MakeFromLiteral用Unknown表示非法字面量的不可用结果,不返回普通error。本文给出业务适配函数,说明诊断上下文保存、接口误用和完整源码解析的区别。481 收藏 -
Go 的 compress/zlib 可以用预置字典压缩具有固定重复片段的短消息。本文从适用条件出发,给出 NewWriterLevelDict 与 NewReaderDict 的配对写法,并说明 ErrDictionary、Close 和字典生命周期的处理边界。480 收藏 -
Go子测试可通过当前t.Setenv临时设置环境并自动恢复。本文给出串行表驱动示例,说明清理归属、空值与未设置状态,以及Parallel、配置缓存和后台任务的限制。480 收藏 -
Go 正则重复捕获组不会保存每次参与的历史值。本文区分完整匹配与子组槽位,给出先约束记录再提取所有单项的写法,并说明 FindAll、命名组和字节索引的边界。480 收藏 -
用 crypto/rand 生成随机字节,再以 RawURLEncoding 得到无等号的 URL 令牌。示例区分随机性、编码格式和业务有效性,并说明严格解析、旧格式迁移与链接使用注意事项。480 收藏 -
Go ServeMux 匹配不到路径时,按 Go 版本、路径段、尾斜杠、通配符、HTTP 方法和 Host 逐项排查,掌握 {id}、{path...} 与 {$} 的实际边界。480 收藏 -
Go 的 ETag 条件请求总是返回 200,通常不是客户端没有缓存,而是服务端没有读取 If-None-Match、比较规则不兼容,或在写入响应体后才尝试返回 304。本文给出可直接改造的 net/http handler 和排障顺序。480 收藏 -
用Ed25519短消息示例明确签名与验证接口,区分种子、密钥和文本编码,定位空结果、不匹配与算法变体混用问题。480 收藏 -
Go 包变量没有显式初始化表达式时不会出现在 InitOrder,但仍具有零值语义。本文对照显式零值声明,结合包作用域示例说明怎样生成完整的具名变量清单。480 收藏 -
Go sync.Pool.Get 取到 nil 并不一定是异常,空池、运行时丢弃对象和未配置 New 都可能触发该分支。本文说明如何用 New 集中创建责任、处理类型断言、清理状态并判断对象是否适合放入 Pool。479 收藏 -
Go ZIP指定文件读取可通过完整条目名精确匹配完成。本文给出限制解压后大小、拒绝重名并关闭两层资源的写法,说明读取错误、内存归档与完整性边界。479 收藏