Go语言技术文章
-
讲清 Go io/fs.Sub 如何把嵌入文件系统的子目录映射为新根,并结合 fs.ValidPath、fs.ReadFile 与业务白名单处理路径边界;同时说明它不是符号链接安全沙箱。466 收藏 -
用 Go go-vcard 保存多个 EMAIL 字段,并通过 PREF 参数指定优先邮箱;同时说明 Add、Set、PreferredValue 和 vCard 4 转换时的边界。466 收藏 -
用 Go go-echarts 配置 inside、slider 和组合缩放组件,讲清 Start、End、Throttle、FilterMode 与坐标轴绑定的选择方法。466 收藏 -
Go time.Duration.Round 会把时间间隔舍入到指定粒度的最近倍数,刚好过半时远离零点,非正粒度则原样返回。本文用紧凑示例说明它与 Truncate 的区别、字符串和毫秒输入的统一处理,以及定时器参数的边界。466 收藏 -
encoding/gob 解码到已有 map 时不会先清空目标,传入数据会覆盖同名键,未出现在流中的旧键仍然保留。本文说明合并语义、nil map 的初始化方式,以及需要替换数据时如何避免旧状态残留。466 收藏 -
Go csv.Reader 的 LazyQuotes 会放宽普通字段中的裸引号和带引号字段中的非双写引号,但不会自动修复字段数、分隔符或业务数据质量。本文按兼容入口、严格边界和回滚路径说明如何安全使用。466 收藏 -
Go unique.Handle 可直接进行相等比较。本文给出批次匹配和三组基准示例,区分字符串内容比较、句柄复用与转换成本,说明分配收益如何判断。466 收藏 -
CommentMap.Update 只迁移注释关联,不替换 AST 父字段。通过完整 Go 示例说明写回节点、Filter 筛选以及浅复制和注释位置的适用范围。466 收藏 -
使用 go/types 检查 int 与 ~int 等重叠联合约束时,Config.Check 负责返回首个错误,Config.Error 可收集每条诊断,Union.Len、Term 与 Terms 则只负责读取已形成的联合结构。466 收藏 -
用 Go 的 image/gif.EncodeAll 组织多帧 GIF:把输入转换为统一调色板的 Paletted,按帧对齐 Delay 和 Disposal,并处理 LoopCount、Config 以及文件关闭错误。466 收藏 -
Go 的 io.ByteScanner 把 ReadByte 和 UnreadByte 组合成了一个很窄但实用的回退接口。本文用 bufio.Reader 拆出 token,遇到分隔符时只退回一个字节交给下一个解析阶段,并说明 Read、ReadRune、连续 UnreadByte 等调用为什么不满足这个契约。466 收藏 -
Golang · Go教程 | 2个月前 | 内存 · 标准库 · go · 性能 · bytes.Buffer · go bytes.Buffer Buffer.Available Buffer.Grow ErrTooLarge
Go bytes.Buffer 的 Available 能告诉你当前还能直接写入多少字节,但它不是总容量,也不能替代 Grow 的容量规划。本文用批量拼接 HTTP 响应的场景,说明 Available、AvailableBuffer、Append、Grow 与 ErrTooLarge 的边界,并给出可回归的检查方法。465 收藏 -
Golang · Go问答 | 2个月前 | 并发 · golang · csv · 数据处理 · Go问答 · 数据导入 encoding/csv csv.Reader Go问答 ReuseRecord 切片复用
encoding/csv.Reader 开启 ReuseRecord 后,Read 返回的记录切片会复用底层数组。本文用导入任务中的异步保存场景说明字段为什么会被后续行覆盖,以及什么时候必须复制记录。465 收藏 -
Go 1.27 将 runtime/pprof 的 goroutineleak profile 正式开放,用垃圾回收可达性发现一部分永久阻塞的 goroutine。本文说明采集入口、HTTP 端点、可识别范围和全局可达对象造成的漏检边界。465 收藏 -
Go 读取同名 Cookie 时,Cookie 方法只返回一个值;本文用 CookiesNamed 和 ParseCookie 保留头部顺序,并说明服务端无法从请求头反推出 Path、Domain、SameSite 与过期时间。465 收藏