Go教程技术文章
-
Windows 下 filepath.Rel 遇到 C: 和 D: 这样的不同盘符时不能构造相对路径。本文解释 VolumeName 与 Rel 的边界,给出同盘计算、跨盘兜底和测试约定,避免把错误吞掉。157 收藏 -
Go URL.ResolveReference 的基础路径末尾斜杠会改变相对路径合并位置。通过目录前缀对照和四条表驱动用例,区分目录基址、当前页面、根路径与查询引用,避免错误拼接。157 收藏 -
用tea.Batch并发启动互不依赖的命令,将耗时操作放入Cmd闭包,并用独立消息更新模型状态。示例讲清结果无序、完成标记与后续任务依赖的处理方式。157 收藏 -
Go 的 archive/tar 适合流式读取归档。本文区分 Header 与 payload,演示只保留文件头元数据、用固定缓冲区消费内容,并说明超大条目和异常归档的内存控制边界。155 收藏 -
用一个小型 Go 任务队列说明 sync.Cond.Signal 与 Broadcast 的选择边界:单个资源变化唤醒一个等待者,全局条件变化广播全部等待者,并解释 Wait 为什么必须放在 for 循环里。152 收藏 -
本文围绕 Go csvutil 的 CSV 表头映射,说明如何用 csv 结构体标签把外部列名写入指定字段,并介绍自定义 Decoder.Tag、空值、未知列和表头差异等边界。152 收藏 -
Go Ristretto v2 通过 Config.Metrics 开启运行时指标,再从 cache.Metrics 读取 Hits、Misses 和 Ratio。本文用一组最小 Go 配方说明命中比例的公式、Wait 的可见性作用、Set 的异步语义与累计统计口径。150 收藏 -
Go 的 exec.CommandContext 默认会在上下文超时后调用 Cmd.Cancel 并 Kill 子进程,但生产任务常需要更温和、可观测的退出策略。本文说明如何设计自定义 Cancel,处理 os.ErrProcessDone、WaitDelay、管道收尾和错误归因。137 收藏 -
Golang · Go教程 | 2天前 | 缓存 · HTTP · go · Go net/http 静态文件 Cache-Control ETag If-Modified-Since ServeFile
用 net/http ServeFile 提供静态文件时,Last-Modified 和 If-Modified-Since 可以由文件修改时间驱动条件响应;ETag 与 Cache-Control 则需要业务方明确设置。本文从一个文件处理器拆开这些响应头的职责边界,并说明路径拼接、304 和缓存失效的常见陷阱。136 收藏 -
用 tview Pages 保留主界面并叠加 Modal,结合完整示例说明确认、取消、Esc、移除临时页和焦点恢复,对比隐藏复用与移除重建的生命周期取舍。135 收藏 -
Go 解析不带时区的日期时间文本时,time.Parse 会按 UTC 解释,time.ParseInLocation 会按传入 Location 解释。本文用对比代码说明选择方法、Zone 判断和输入边界。132 收藏 -
围绕 Go net/url 的 URL.OmitHost 字段,说明空 authority 的 String 序列化、Path 双斜杠保护、Opaque URL 区别和调用方兼容策略,给出带中文注释的最小示例。131 收藏 -
Go GopherLua 注册 Go 函数的关键是实现 lua.LGFunction,再用 L.NewFunction 包装并通过 SetGlobal 或 SetFuncs 暴露给 Lua。本文围绕参数读取、返回值数量、错误回传和 LState 生命周期给出最小可复用写法。131 收藏 -
从运行时值、泛型类型参数和接口类型三个角度比较 reflect.TypeFor 与 TypeOf 空指针技巧,说明 nil interface 陷阱以及该怎样选择更直观的写法。126 收藏 -
Go 的 crypto/mlkem.Decapsulate 只有在密文长度不正确时返回错误;长度正确但内容无效时会得到不匹配的共享密钥。本文给出错误传播、协议确认和日志脱敏的实用写法。122 收藏