Go语言技术文章
-
Bubble Tea 的 Update 修改字段后,下一轮 View 仍然不变,通常是返回了旧模型,或值接收者修改副本后没有返回该副本。本文按消息、模型、返回值和 View 的状态链路给出排查与修复写法。290 收藏 -
Bubble Tea 会把终端初始尺寸和后续变化送进 Update。本文用 WindowSizeMsg 保存宽高,再让 View 根据模型尺寸重算布局,并说明过窄窗口与 Windows 平台边界。332 收藏 -
Bubble Tea 中不要让耗时查询直接阻塞 Update,而是把查询封装成 tea.Cmd,在完成后返回带数据或错误的自定义 Msg,再由 Update 统一更新模型。本文还说明如何用请求序号丢弃过期结果。224 收藏 -
Go billy 的 OpenFile 中,O_CREATE 只负责目标不存在时创建,O_TRUNC 负责打开已有文件时清空内容。本文用 memfs 与 osfs 的接口语义对比新建、覆盖、追加和排他新建,避免误删旧文件。317 收藏 -
以go-billy v5.6.2的memfs为例,解释Chroot后绝对路径与子根的关系,通过同一文件的内容比较区分父视图、子视图与宿主路径,并提醒不要重复拼接Root。131 收藏 -
billy.Filesystem 的 Rename 只在一个文件系统实例的路径空间内工作。跨实例移动要显式打开源文件、创建目标文件、复制内容,并在资源关闭成功后删除源文件。200 收藏 -
介绍 Go billy.Filesystem.TempFile 的创建方式,演示如何在测试中保存路径,并用 t.Cleanup 按 Close 后 Remove 的顺序可靠清理临时文件。491 收藏 -
Go billy 的 Capabilities 返回文件系统能力位,CapabilityCheck 可判断一组操作是否同时被支持。本文说明位掩码读取、能力声明与底层存储状态的区别,以及写入、锁定和同步前的分支设计。403 收藏 -
Go billy 的 memfs 可以通过 Filesystem.Chroot 把 workspace 变成相对路径工作根。本文用最小 Go 示例说明如何创建、读写文件,并处理不存在目录、越界路径和 v5/v6 导入差异。410 收藏 -
afero WriteFile只创建或截断目标文件,不递归准备父目录。本文按目录归属比较主动创建与要求目录存在两种策略,并给出分阶段保留错误的Go示例。239 收藏 -
Golang · Go问答 | 4小时前 | Go教程 · Go问答 · 文件系统 · Go afero CopyOnWriteFs CopyOnWriteFs 写入 base layer overlay 文件系统
Go afero CopyOnWriteFs 读取基础层成功但原文件不变,是因为写操作会把 base 文件复制到 layer,再只修改覆盖副本。本文从源码关系拆解读写边界,并说明预览隔离、显式同步和直接使用 OsFs 的选择。417 收藏 -
Go afero 的 MemMapFs 和 OsFs 都实现 afero.Fs,但测试边界完全不同:前者把文件放在进程内存中,适合快速隔离的单元测试;后者调用真实操作系统文件 API,适合补充权限、路径和平台语义验证。本文按排查清单给出选择方法。272 收藏 -
用 Go afero 的 BasePathFs 为导出逻辑建立工作目录边界,演示相对路径写入、父目录创建、越界失败和安全边界判断。300 收藏 -
用afero MemMapFs为文件读取测试准备独立目录,示例讲清父目录创建、文件写入和实例注入,并区分正常内容、缺文件与真实磁盘测试的适用场景。278 收藏 -
使用 afero.NewReadOnlyFs 把可写的 afero.Fs 包装成只读视图,明确读取、Stat、已存在目录与创建删除重命名等修改操作的边界,并给出可回滚的注入方式。103 收藏