Go语言技术文章
-
Google 与 Apple 的合作首先改变的是 Apple Foundation Models 的模型底座和云端承载方式,并不等于现有开发者 API 已经改名。本文按接口层、运行边界和 Siri 集成面梳理当前影响。408 收藏 -
Go 的 strconv.Atoi 不会自动忽略首尾空白。本文说明为什么会解析失败,并给出裁剪后解析、严格拒绝和错误分类的实用写法。408 收藏 -
用 ~ 底层类型约束定义可参与运算的 Go 泛型函数,让 PriceCents、Meters 等自定义数值类型复用 Sum,并理解类型推断和混合参数的边界。408 收藏 -
用 AbortSignal.any 合并用户取消与请求超时,掌握特性检测、fetch 接入、reason 判断和监听器清理,快速排查请求一创建就中止或超时原因丢失的问题。408 收藏 -
Go embed.FS中的路径是跨平台的虚拟路径。本文从失败现象出发,说明反斜杠为何会让ReadFile找不到文件,并给出正斜杠、path.Join和测试复查的处理方法。408 收藏 -
Go os/exec 的 WaitDelay 不只是命令超时参数,它还限制子进程退出后遗留 I/O 管道的收尾等待。本文用 CommandContext、ErrWaitDelay 和输出管道示例说明配置方式与边界。408 收藏 -
复用 Go hash.Hash 时,Sum 只读取当前摘要而不会清空状态,独立消息必须在 Write 前明确 Reset。本文用错误与正确示例解释状态边界、Sum 的追加语义、sync.Pool 的独占借用原则,并给出可复现的 benchmark 方法判断复用是否值得。408 收藏 -
Go 读取 JPEG 宽高无需先解码像素:jpeg.DecodeConfig 会返回 ColorModel、Width 和 Height。本文用一次故障复盘讲清 Reader 消费、像素门禁与二次解码边界。408 收藏 -
Go vendor 目录已经更新却仍提示依赖不一致,通常是 vendor/modules.txt 与 go.mod 的 require、replace 或显式标记不同步,或在 workspace 中用了单模块命令。本文给出完整排查流程。408 收藏 -
用 archive/tar 解包时,先读取 Header.Mode 和 Typeflag,再按成员类型创建目录、写入文件并恢复权限,避免脚本或只读文件的模式丢失。408 收藏 -
Go SJSON 追加数组元素时,路径末尾使用 -1,例如 items.-1。本文拆开说明它与具体下标、越过数组末尾和数字对象键的区别,并给出可直接改写 JSON 的示例。408 收藏 -
Go 的 vendor 模式和模块缓存不是两份等价副本:-mod=vendor 从项目根目录的 vendor 读取,-mod=mod 才会走模块缓存。本文按命令来源、modules.txt、工作区和工具链四个边界定位结果差异。408 收藏 -
Web Worker 默认会通过 structured clone 复制消息数据。本文用 ArrayBuffer 说明 transferable objects 的写法、发送端 detached 状态、TypedArray 与底层 buffer 的关系,以及结果转回主线程时的生命周期边界。408 收藏 -
gctrace 的 clock、cpu 与堆目标各有统计口径。本文区分 STW 和并发标记、goal 与 RSS,说明先构建后采集的写法,以及日志开销、采样周期和结构化指标的边界。408 收藏 -
上线 AI 模型前不要只看评测分数。本文围绕模型卡中的许可证、训练数据说明和适用范围,整理一份可交接的限制条件清单,并说明如何把缺失信息、人工兜底和提供商选择写进发布决策。408 收藏