Go语言技术文章
-
前端用 URL.createObjectURL 预览 File 或 Blob 时,revokeObjectURL 不能机械地立刻调用。本文按图片加载、替换预览、组件卸载和下载链接四种边界,说明什么时候释放对象 URL 才不会让资源提前失效。422 收藏 -
Go 类型断言返回 ok=true,只能说明接口里的动态类型匹配,不能证明断言得到的指针非 nil。本文用 typed nil 示例拆解接口值、断言结果和方法调用的边界,并给出 nil 与 error 的安全处理写法。103 收藏 -
使用 Go filepath.WalkDir 扫描目录时,先处理回调错误并记录 path,再用 SkipDir 控制目录过滤;本文还说明 DirEntry、符号链接和根路径失败的边界。162 收藏 -
Linux mount namespace 并不自动保证挂载修改不会影响宿主,关键要看 shared、slave、private 等传播属性。本文用 unshare、mount --make-rprivate 和 mountinfo 检查,说明如何把临时挂载限制在隔离命名空间内。127 收藏 -
Python sqlite3 多线程报错通常不是 SQL 写错,而是一个 Connection 被创建它的线程之外复用。本文给出每线程独立连接和共享连接加锁两种改法,并说明提交与回滚边界。264 收藏 -
解释 Go 中 typed nil 为什么会让 error != nil,演示如何拆分接口的动态类型和值,并给出无错误分支直接返回 nil 的修复写法。224 收藏 -
多个 Java ModuleLayer 同时存在时,不要用父层、同名模块或类加载器是否相同来猜 reads 关系。本文用 Module.canRead、addReads、findModule 和 findLoader 建立可观察的判断方法。361 收藏 -
用 Go filepath.WalkDir 递归过滤指定扩展名文件,正确处理目录、符号链接、根路径失败和子目录读取错误,保留部分结果与错误清单。255 收藏 -
PHP backed enum 直接 json_encode 时默认输出 backing value,而不是 case 名称。本文用最小示例区分 name、value、from/tryFrom,并给出需要输出名称或二者并存时的 JsonSerializable 写法。221 收藏 -
Go 泛型调用遇到 untyped constant 时,类型参数通常按默认类型推断,赋值左侧不会反向改变 P。本文用 MyInt 示例拆开推断、约束和显式转换的边界。259 收藏 -
GitHub Copilot 将 app 与云端 Agent 纳入企业托管设置支持范围,本文拆解插件、市场、模型默认值与审批绕过控制的边界,并给出低风险验证方式。106 收藏 -
Go 的 ZIP 条目名本来就使用正斜杠表示层级,但不能把名称直接拼到解压目录。本文用 archive/zip、filepath.IsLocal 和 filepath.Localize 还原目录结构,并区分目录条目、文件名编码与读取错误。149 收藏 -
AI Agent 调用外部工具超时后,不要把异常当空结果或无条件重试。通过 schema、参数校验、幂等键、未知状态和恢复队列,设计可判断、可追踪、可继续处理的结果。203 收藏 -
Go 泛型约束允许某些类型,不代表一次调用可以让不同实参各自选择类型。本文从类型推断、无类型常量和可赋值规则入手,定位接口约束通过但调用仍类型不匹配的原因。443 收藏 -
Go 的 archive/zip 中,目录条目和空文件都可能没有可读内容,但判断依据不同。本文用 FileHeader.IsDir、Name、NonUTF8 和 Open 组织一个安全的解压循环,说明如何保留空文件并定位条目读取错误。274 收藏