Go教程技术文章
-
go doc 默认输出包或符号的文档,增加 -ex 后会把与目标绑定的可执行示例一并打印。本文从示例命名、命令参数、输出注释和常见边界说明怎样直接查看示例实现。318 收藏 -
Go 反射中调用 Value.Addr 前,必须先确认 Value 是否可寻址。本文用 CanAddr 串起普通值、指针解引用、切片元素、结构体字段与 map 索引的边界,并说明它与 CanSet、CanInterface 的区别。318 收藏 -
Go x/text/cases 的 Title 可以结合语言标签生成标题式大小写。本文用普通标题、NoLower、String/Bytes/Transform 和 Caser 并发边界说明怎样选参数与避免误用。318 收藏 -
Go x/image/font/sfnt 的 GlyphIndex 用于把 rune 映射到字体中的字形索引。本文从缺字症状出发,说明字体解析、Buffer 复用、返回 0 的含义,以及如何继续读取字形名称、边界和轮廓。318 收藏 -
用 Go archive/tar 读取 tar 条目的 PAXRecords 扩展属性,本文覆盖 Reader.Next、键存在判断、命名空间、Xattrs 等价关系和写入优先级。318 收藏 -
Go Validator 的 dive 用于把校验规则下沉到切片元素。本文用批量邮箱和订单明细示例说明容器规则、元素规则、嵌套结构体、错误下标与空值边界的写法。318 收藏 -
Go HTTP 服务端用 MaxBytesReader 限制请求体后,应该通过 errors.As 区分正常读取、超过上限和其它读取错误。本文给出带 Close 的 handler 写法,并说明大小限制与业务校验的边界。318 收藏 -
Go 的 ctx.Err() 只能告诉你上下文已取消或超时,context.Cause(ctx) 则能在使用 WithCancelCause 或 WithTimeoutCause 时读取更具体的原始原因。本文用最小示例说明两者差异、父子上下文传播和工程接入边界。318 收藏 -
Go encoding/json 处理连续 JSON 对象时,可以为同一个 io.Reader 创建 json.Decoder,反复 Decode 并用 io.EOF 结束。本文封装一个可复用的泛型读取函数,说明空输入、语法错误、数组边界和大流式输入的处理方式。318 收藏 -
以检索结果页说明 Go html/template 的上下文转义、普通模板函数与可信片段,给出固定HTML标记的完整示例,并明确模板源码、富文本和URL的信任边界。317 收藏 -
表格驱动和并行子测试中,把资源创建、t.Cleanup 注册和释放范围放在同一个子测试作用域,可以覆盖失败、跳过与独立运行场景;本文说明父子清理顺序、后注册先执行和共享资源边界。317 收藏 -
Go archive/tar 当前没有公开的 Reader.WriteTo 方法。本文解释源码内部 writeTo 与 Reader.Read 的差异,说明稀疏文件空洞为何会表现为 NUL 字节,并给出普通解包与额外恢复层的边界判断。317 收藏 -
使用 Go x/text/runes.Map 按 Unicode 码点替换指定字符,掌握 transform.String、非法 UTF-8 边界以及 Map、Remove 的选择。317 收藏 -
用 github.com/gofrs/flock 的 TryLock 实现非阻塞进程互斥,区分 locked=false 与错误,安排 Unlock 清理,并用 TryLockContext 设置有限等待边界。317 收藏 -
time.AfterFunc 的 Stop 返回 false 只说明定时器已经过期或停止,并不代表回调已经执行完。本文用 done 通知说明如何安全等待已启动的回调结束。317 收藏