Go语言技术文章
-
用go-message/mail的NextPart识别附件并逐个保存,示例涵盖流式复制、独立文件名、大小与数量限制,以及页面如何呈现部分成功和失败结果。369 收藏 -
Go go-imap 中的消息序号是当前邮箱列表的位置,UID 是邮箱内的消息标识。本文说明 SeqSet、UIDSet、UIDSearch 和 UIDExpunge 的边界,并解释为什么跨请求缓存时还要保存邮箱与 UIDValidity。120 收藏 -
用 go-imap v2 的 UIDSearch 配合 SearchCriteria.Since 按日期筛选邮件,理解日期边界、UID 返回值和后续 Fetch 的衔接方式。465 收藏 -
Go Paho MQTT 中,Publish 的 retained 参数会让 broker 保存主题的最后一条消息,并在匹配的新订阅建立时回放。本文区分保留消息与 CleanSession=false 的持久会话恢复,演示如何读取 Retained 标记、处理提前到达的消息,以及清理过期状态。372 收藏 -
通过SubscribeMultiple为多个主题过滤器分别指定QoS,示例说明Token等待、逐项授权返回码、超时不确定性,以及权限、重连与共享回调的职责安排。278 收藏 -
Go JetStream 的 Ack 发送确认但不等待服务端回复,DoubleAck 会等待回复。通过处理函数与两张结构图,说明确认返回值、超时状态、业务幂等及方法选择。361 收藏 -
Go JetStream 的分批消费要先区分一次性 Fetch 与持续拉取的 Messages、Consume。本文用 nats.go 说明消息数、字节数、确认、批次错误和消费生命周期的处理方式。485 收藏 -
Go NATS 客户端要让多个订阅者分担同一主题消息,应使用 QueueSubscribe 并让主题和队列组名完全一致。本文区分普通订阅、队列组与 JetStream 的边界,说明重复消费和可靠性误判的排查方法。311 收藏 -
Go NATS 客户端的 Flush 只完成一次连接到服务器的往返确认,不代表异步消费者的回调已经执行完。本文区分服务器处理、客户端投递、业务完成和 JetStream ack,并给出可落地的判断方式。317 收藏 -
用 Go 的 go-diff/diffmatchpatch 从旧文本和新文本生成可保存的补丁,接收端解析后应用到基线文本,并正确处理逐项失败结果。394 收藏 -
对比 go-diff 的语义清理与效率清理,说明阅读体验、编辑成本和 DiffEditCost 的区别,并用独立副本及文本重建示例解释选择与改造方法。210 收藏 -
区分 go-pretty 行列 AutoMerge 的作用范围,用最小 Go 示例说明重复内容的展示合并,并解释分组可读性、格式化文本及 CSV、Markdown 输出的边界。365 收藏 -
go-pretty/table 用 SortBy 接收多个排序规则,前面的规则优先,只有当前列相等时才比较下一列。本文从状态、优先级、更新时间的真实场景出发,说明列名与列号、数字与文本模式、忽略大小写和 CustomLess 的组合方式。192 收藏 -
go-runewidth 的歧义宽度字符并不都会随东亚宽度策略变成两列。本文解释 EastAsianWidth、Condition、IsAmbiguousWidth 与 RuneWidth 的差异,并给出固定终端表格对齐口径的 Go 写法。335 收藏 -
Go 终端表格混排中文和英文时,不能用字节数或 rune 数量代替显示列宽。本文用 go-runewidth.Truncate 按单元格宽度截断,并说明尾标记预算、StringWidth、Wrap 与 Condition 的使用边界。410 收藏