Go问答技术文章
-
Go tcell 窗口缩小后出现旧字符残留,通常不是单个 SetContent 写错,而是 resize 后仍按旧尺寸局部绘制或终端显示与逻辑单元格失步。本文用 EventResize、Size、Sync 和 Clear 区分原因,并给出可复用的重绘写法。316 收藏 -
区分 tcell Show 的日常显示提交与 Sync 的全量重同步,用固定版本事件示例说明普通变化、主动重绘和尺寸事件的取舍,并排除业务状态、布局及外部输出干扰。168 收藏 -
Go huh 中,字段 Validate 返回错误不会让表单退出;用户主动离开才会得到 huh.ErrUserAborted。本文按提交、取消、校验失败和运行时错误四个出口说明 errors.Is 与 Form.State 的用法。377 收藏 -
huh 表单结束后变量仍是旧值,通常是 Value 绑定了副本、变量被遮蔽,或 Run 没有完成。本文给出指针绑定、状态判断和 Key 读取的排查方法。103 收藏 -
Go huh 动态选项未刷新时,应区分静态 Options、OptionsFunc 闭包和 bindings。通过区域与队列联动示例说明变量地址绑定、缓存、旧选择失配及空状态处理。367 收藏 -
Go Lip Gloss 的 Width 参与块布局和文本换行,MaxWidth 则在渲染完成后逐行截断。本文结合边框、内边距和 Inline,说明两者的渲染时机与选择方法。429 收藏 -
Go Lip Gloss 在不同终端颜色不一致,通常与终端色彩档位、输出目标和背景检测有关。本文说明如何使用 Lip Gloss writer 自动降采样,并用 Complete 为关键颜色提供稳定回退。228 收藏 -
Lip Gloss 的带颜色字符串包含 ANSI 控制序列,而中文和 Emoji 又可能占用多个终端单元格,所以 len 和 []rune 都不能代表显示宽度。本文按排障手册拆开长度口径,并给出 lipgloss.Width、lipgloss.Size 的替换方法。418 收藏 -
Bubble Tea 的 tea.Batch 适合互不依赖的命令并发组合,tea.Sequence 适合必须按顺序执行的命令。本文用原创 Go 示例说明两者的结果顺序、依赖关系、nil 命令与错误处理边界。119 收藏 -
Bubble Tea 的 tea.Tick 只发送一次消息;要做持续定时,必须在 Update 处理 TickMsg 后返回下一次 Tick 命令,并在退出时停止重新调度。251 收藏 -
Bubble Tea 的 Update 修改字段后,下一轮 View 仍然不变,通常是返回了旧模型,或值接收者修改副本后没有返回该副本。本文按消息、模型、返回值和 View 的状态链路给出排查与修复写法。290 收藏 -
Go billy 的 OpenFile 中,O_CREATE 只负责目标不存在时创建,O_TRUNC 负责打开已有文件时清空内容。本文用 memfs 与 osfs 的接口语义对比新建、覆盖、追加和排他新建,避免误删旧文件。317 收藏 -
以go-billy v5.6.2的memfs为例,解释Chroot后绝对路径与子根的关系,通过同一文件的内容比较区分父视图、子视图与宿主路径,并提醒不要重复拼接Root。131 收藏 -
billy.Filesystem 的 Rename 只在一个文件系统实例的路径空间内工作。跨实例移动要显式打开源文件、创建目标文件、复制内容,并在资源关闭成功后删除源文件。200 收藏 -
afero WriteFile只创建或截断目标文件,不递归准备父目录。本文按目录归属比较主动创建与要求目录存在两种策略,并给出分阶段保留错误的Go示例。239 收藏