Go教程技术文章
-
go-smtp 的 Client.Reset 会发送 SMTP RSET,清除当前 MAIL/RCPT 事务但保留连接。本文说明它适合的阶段、DataCommand 的关闭边界,以及失败后何时应该直接重连。178 收藏 -
用Go go-message构建纯文本正文与CSV附件并存的邮件,说明mixed容器、部件关闭、默认编码、内存限额与邮件交付边界。434 收藏 -
使用 go-imap v2 把本地 RFC 822 邮件追加到指定邮箱,重点说明 Append 的邮件大小、AppendOptions、Write、Close 与 Wait 的调用顺序,以及权限、大小限制和重复投递边界。240 收藏 -
Go Paho MQTT Go 的 OnConnectHandler 会在首次连接和自动重连后调用。本文把业务订阅集中到一个恢复函数中,说明 SubscribeMultiple、CleanSession、ResumeSubs 和异步 token 的边界,避免重连后消息悄悄中断。263 收藏 -
用 Go JetStream 客户端监听 KeyValue bucket 的键变化,拆清初始快照、nil 分界、实时更新、删除标记、revision 以及常用 WatchOpt 的选择。173 收藏 -
介绍Go NATS客户端用NewMsg、Header.Set与Add附加消息头,通过PublishMsg发送并读取单值和多值字段,区分发送成功与业务处理确认。149 收藏 -
使用 Go go-diff 的 diffmatchpatch 按行压缩两段文本,经过 DiffMain 计算差异后还原原始行,并处理语义清理、换行和 UTF-8 边界。479 收藏 -
使用 go-pretty/v6/table 把同一组表头和数据行导出为 Markdown,说明 AppendRows、页脚、RenderMarkdown、PadContent 以及列数和特殊字符边界。136 收藏 -
使用 go-runewidth Condition.Wrap 按终端显示列数折行,说明字节数与 rune 数的区别、逐行测宽、控制字符输入约束及 ANSI 和复杂字符边界。273 收藏 -
用 Go uniseg 的 Graphemes.LineBreak 判断每个 grapheme cluster 后面是禁止、可选还是必须换行,并说明何时应改用 FirstLineSegmentInString。262 收藏 -
使用 go-i18n TemplateData 向消息模板传入命名字段,对比 map 与结构体,解释 PluralCount 的独立职责、缺键处理和网页输出转义。262 收藏 -
Go jsonschema/v5 可以把 JSON Schema 编译成可复用的 *jsonschema.Schema。本文用一个小例子说明如何只编译一次、重复校验多份文档,并区分解析错误、编译错误和 ValidationError。194 收藏 -
介绍 gojq RunWithContext 的查询取消方法,提供超时与迭代错误处理示例,区分停止等待和停止计算,说明扩展调用、结果限制与部分结果的边界。500 收藏 -
使用 go-flags 的 Completer 接口为自定义命令行值返回前缀匹配候选,解释 Completion 的字段、指针接收者、choice 标签与空前缀处理。364 收藏 -
使用 Kong MapperFunc 和 TypeMapper 注册自定义区间参数,介绍 Scanner 取值、反射赋值、NamedMapper 与字段级绑定,并说明错误处理及语法兼容。263 收藏