Go语言技术文章
-
Go encoding/base64 的 NewEncoder 会把不足一个完整分组的尾部数据暂存在内部,必须调用 Close 才能刷新到目标 Writer。本文用最小代码说明正确关闭顺序、StdEncoding 与 RawStdEncoding 的 padding 边界,以及 io.Copy、文件资源和错误处理的组合方式。114 收藏 -
Go os/signal 的 channel 容量不是信号种类数量。本文从 Notify 的非阻塞发送、接收速度和退出生命周期出发,说明容量 1 何时足够,以及何时需要更大的缓冲。157 收藏 -
Go encoding/base64 中,StdEncoding 保留 RFC 4648 的等号填充,RawStdEncoding 关闭填充。本文用同一份输入对比两种输出,并说明解码匹配、URL 字符集与 WithPadding 的选择边界。357 收藏 -
用 Go os/signal 接收 SIGINT 和 SIGTERM,将信号接入服务生命周期,说明缓冲 channel、NotifyContext、Stop 以及重复信号和平台边界。132 收藏 -
用 Go encoding/xml 的 ,attr 标签把 XML 属性映射到结构体,说明指针空值、any,attr 扩展属性、嵌套节点和 Marshal 双向验收边界。147 收藏 -
用 context.WithTimeout 和 exec.CommandContext 给外部命令设置截止时间,区分超时终止、启动失败与正常退出,并说明子进程清理边界。307 收藏 -
围绕 Go encoding/xml 的 Decoder.Strict,说明如何隔离宽松解析、配置 AutoClose 与 Entity,并在容错后继续校验 XML 结构和业务字段。106 收藏 -
围绕 Go os/exec 的 Cmd.Env 和 Cmd.Environ,说明如何用允许名单构造最小环境,并处理 PATH、Dir、重复键与跨平台边界。156 收藏 -
围绕 Go encoding/xml.Decoder.Token 讲清混合内容的事件读取、元素栈、文本拼接与错误边界,给出可直接改造的流式解析示例。376 收藏 -
围绕 Go os/exec 的 StdoutPipe 说明 Start、读取、Wait 的正确顺序,并区分输出读取错误、退出错误与 stderr 诊断信息。312 收藏 -
讲清 Go encoding/gob 新增结构体字段时的兼容规则,给出默认值处理、双向读写测试和字段改名、类型变化等迁移边界。110 收藏 -
Go time.Time 取整时,Truncate 向下归入已开始的时间窗口,Round 选择最近的时间刻度。本文用代码和边界表对比两者结果,并说明 Location、负时间和非正 Duration 的处理方式。119 收藏 -
围绕 Go encoding/gob 长连接复用场景,说明连接级 Encoder 与 Decoder 的正确用法、并发写入限制、错误恢复和必须重新创建编解码器的边界。371 收藏 -
用 Go time.LoadLocation 集中管理 IANA 时区,区分 Parse 与 ParseInLocation,统一 UTC 存储和 Time.In 展示,并说明夏令时与 tzdata 缺失时的处理边界。296 收藏 -
讲清 Go encoding/gob 接口字段为什么要注册具体实现类型,并用收发示例说明值、指针、注册名和解码边界。181 收藏