Go教程技术文章
-
slices.DeleteFunc 适合按条件批量删除切片元素,但回调遍历的是原切片语义,不能在回调里再改同一个切片。本文用可运行示例拆开保序删除、索引变化和尾部清零带来的内存边界,并给出何时改用一次性筛选。285 收藏 -
从配置校验场景出发,拆开 nil 接口、typed nil 和 reflect.Value.IsZero 的差异,并用可运行的 Go 示例给出安全的判断边界。382 收藏 -
Golang · Go教程 | 3星期前 | 错误处理 · go · 模板 · 后端开发 · Go Template html/template text/template 模板运行 missingkey
Go 模板渲染可选片段时,字段缺失不一定会立刻报错。本文用 text/template 的模板运行、Option("missingkey=error") 和显式分支拆开默认行为、严格校验与可选字段的边界,给出可直接运行的处理方式。177 收藏 -
用 Go 标准库 netip.Prefix.AppendTo 把 IPv4 与 IPv6 网段写入既有字节缓冲区,验证前缀长度、零值和容量边界,避免不必要的字符串分配。479 收藏 -
用 Go 标准库 crypto/ecdh 完成一次可验收的密钥交换,说明公钥 Bytes 序列化、NewPublicKey 恢复、曲线匹配和共享密钥一致性检查。413 收藏 -
从一个可重复触发的 Go 定时任务出发,拆解 time.Ticker 的停止顺序、退出信号、重复 Stop 边界和可验收的收尾写法。364 收藏 -
围绕分块文件生成场景,验证 Go os.File.WriteAt 的独立偏移语义、并发写入边界、短写处理和最终文件验收方法。326 收藏 -
解释 encoding/csv.Reader.ReuseRecord 的切片复用语义,演示批量读取时如何降低分配,以及需要长期保存记录时如何避免数据被下一次 Read 覆盖。473 收藏 -
用一个最小 HTTP 服务演示 Go 的 http.NewResponseController 如何统一调用 Flush 和 Hijack,并核对包装器与 HTTP/2 不支持时的错误边界。334 收藏 -
用 Go strings.FieldsSeq 处理日志标签和空白分词,说明 iter.Seq[string] 如何被 for range 消费、空输入如何结束,以及何时仍应使用 strings.Fields 返回切片。164 收藏 -
用 Go log/slog 的 WithGroup 组织嵌套字段,解释 Handler 链路、同名键边界与 JSON 输出检查方法。341 收藏 -
Go 的 runtime.SetFinalizer 可以在对象不再可达时安排回调,但它不是文件、连接或临时目录的确定性关闭机制。本文用 runtime.KeepAlive、SetFinalizer 和显式 Close 对比验证可达性、回收时机与资源释放边界。161 收藏 -
Go 处理用户上传目录或解压目录时,os.Root 可以把文件访问限制在一个根目录内。本文从 Open、ReadFile 和相对路径校验入手,说明目录沙箱如何工作、哪些错误必须保留,以及如何验证越界路径不会被打开。483 收藏 -
用 Go 的 weak.Pointer 做一个不会长期抓住对象的弱缓存,解释 runtime.KeepAlive、Load 与 GC 回收之间的边界,并给出可复现的并发读取写法。229 收藏 -
用 Go 的 net/http.ServeContent 搭一个可验证的文件下载接口,拆清 Range、If-Modified-Since 与 Last-Modified 的判断边界。125 收藏