Go教程技术文章
-
通过一个原始名称检查 CLI,说明怎样组合 fs.ValidPath、应用命名政策和 fs.Stat,区分格式、不存在及权限问题,并解释路径清理与目录访问的边界。147 收藏 -
Go ParseInLocation 可按指定 Location 解释无时区日期。本文给出批量解析示例,说明复用时区、结果预分配、日期转换差异和错误处理边界。147 收藏 -
用 Go crypto/sha3.New256 复用 SHA3-256 哈希对象,讲清 Write、Sum、Reset 的边界、批量摘要中的清理顺序,以及 sync.Pool 归还对象时怎样避免串状态。146 收藏 -
Go io.LimitReader 可以把任意 io.Reader 包装成有字节上限的流。本文用一个小型文本导入工具说明如何消费受限输入、判断是否触达上限、处理底层错误,并比较它与 io.CopyN、http.MaxBytesReader 的使用边界。145 收藏 -
用 Go net/http 提供静态文件时,http.FileServer 不会替你决定 Cache-Control。本文通过 handler 包装器区分带 hash 的资源和 HTML 入口,讲清缓存头与条件请求的职责边界。145 收藏 -
Go 生成 GIF 时,局部帧叠加和 Disposal 选择不当会让旧像素残留。本文解释 DisposalNone、DisposalBackground、DisposalPrevious 的区别,并给出编码与排查方法。145 收藏 -
同时读取 Example.Output 与 EmptyOutput,区分显式空输出、未声明输出和非空预期文本。通过带注释的 AST 静态抽取示例,说明记录字段和运行证据的边界。145 收藏 -
介绍Go fs.WalkDir遍历embed.FS并读取正文的方法,通过完整示例说明子树路径、回调错误和SkipDir,分析资源内嵌的部署收益与更新边界。144 收藏 -
Go 的 time.Duration 底层按纳秒计数,外部配置却常用毫秒。本文用单一转换入口区分裸整数、time.Duration 和字符串时长,说明定时器、超时参数、零值、负值与溢出边界,避免单位混用导致等待时间异常。142 收藏 -
Go os.CopyFS 可以把 embed.FS 或其他 fs.FS 的目录树复制到磁盘,但不会覆盖已有文件。本文围绕空输入、fs.Sub、fs.ErrExist 和首个底层错误,整理一套能保留错误边界的复制写法。141 收藏 -
Go 的 slices.Compact 只合并连续相等元素,不会自动过滤空字符串或零值。本文用 nil、空切片、业务校验和 CompactFunc 说明异常分支及尾部清零的处理方式。140 收藏 -
使用 filepath.Rel 生成归档文件名时,应先确定 basePath 和 targPath,再处理返回错误与 ../ 结果,最后用 filepath.ToSlash 统一条目分隔符。本文给出可复用的小函数和跨平台边界。138 收藏 -
用 fs.Sub 与 fs.WalkDir 保留相对目录路径,给出 ListRelative 完整示例,区分空输入、空目录、不存在的根与中途访问错误,并保留可识别的错误链。138 收藏 -
Go database/sql 读取多个结果集时,要在当前结果集内用 Next 和 Scan,读完后用 NextResultSet 切换,并在两个 false 边界检查 Rows.Err。本文给出不依赖具体存储过程语法的通用读取骨架。136 收藏 -
Go sync.Map 并不是所有并发 map 的默认替代品。本文从只写一次多次读取、互不重叠键集合两个官方优化场景出发,结合 LoadOrStore 示例说明它和 map 加 RWMutex 的取舍,以及 Range、类型安全和复制限制。135 收藏