Go教程技术文章
-
Go context.WithoutCancel 可以保留请求范围内的值,却不继承父上下文的取消信号。本文对比 Value、Done、Deadline、Err 和 Cause,并给出脱离请求后重新设置独立超时的写法。458 收藏 -
Go 的 ctx.Err() 适合判断 Canceled 和 DeadlineExceeded,context.Cause(ctx) 则能在设置取消原因后保留更具体的根因。本文用父子 Context、主动取消和超时三个场景说明两者如何配合。255 收藏 -
用 context.WithTimeoutCause 保存超时原因,用 context.Cause 区分截止时间、主动取消和上游取消。271 收藏 -
Go Ticker 动态调整周期不必重复创建对象,使用 Reset 复用同一条通道即可。本文说明周期校验、单一拥有者、暂停恢复和 Stop 清理的边界。234 收藏 -
说明 Go time.AfterFunc 的 Stop 返回值、回调竞态及 nil 通道边界,给出一次性取消并等待包装器,用 Context 请求退出、done 确认完成,避免把停止触发误当作终止回调。318 收藏 -
Go 的 time.LoadLocation 找不到 IANA 时区数据时,不应静默继续。本文说明时区数据来源、容器部署处理,以及 UTC、固定偏移和直接失败三种明确降级策略。467 收藏 -
Go 的 regexp.Regexp.SubexpIndex 可以把命名捕获组转换为 FindStringSubmatch 返回值中的稳定位置。本文说明索引映射、不存在与未匹配的区别、重复命名规则,以及如何封装安全读取逻辑。359 收藏 -
Go 的 time.Time.AppendFormat 会把格式化结果直接追加到已有 []byte 并返回扩展后的切片。本文用日志字段示例说明返回值、容量复用、Format 对比以及布局和时区的使用边界。459 收藏 -
说明 Go time.Time 的 Round 与 Truncate 如何按固定周期取整并保留 Location,结合固定偏移示例区分绝对网格、本地整点、日历一天及单调时钟注意点。215 收藏 -
用 Go regexp.FindAllIndex 获取每次匹配的半开字节区间,理解 n 参数、中文 UTF-8 下标,以及整体匹配和捕获组索引的区别。326 收藏 -
Go regexp 默认采用左优先匹配;如果同一起点有多个候选并希望优先拿到更长结果,可以在共享使用前调用 Regexp.Longest。本文用最小示例对比默认模式、Longest 与 CompilePOSIX 的边界。233 收藏 -
Go 的 strings.FieldsFunc 适合按自定义 rune 规则切分文本。本文用字段导入场景说明它如何处理连续分隔符、首尾分隔符、Unicode 字符与空字段,并给出与 Split、FieldsFuncSeq 的选择边界。362 收藏 -
使用 Go strings.CutSuffix 精确移除末尾一份可选后缀,保留中间内容,并区分 found、空后缀、重复后缀、大小写与旧版本兼容写法。165 收藏 -
用 strings.CutPrefix 一次完成可选前缀的判断与去除,讲清命中、未命中、空前缀和旧写法迁移时的返回值,附可直接改造的 Go 示例。490 收藏 -
Go 中需要把 []byte 交给异步任务、缓存或跨层接口时,bytes.Clone 可以复制有效数据并隔离底层数组。本文比较旧写法与新写法,并说明 nil、空切片、容量和回归测试的边界。407 收藏