Go语言技术文章
-
Golang · Go教程 | 2星期前 | 流式处理 · Go教程 · CloseWithError Go io.Pipe Go 流式上传 json Encoder 请求体 NewRequestWithContext
用 Go io.Pipe 把编码器输出直接连接到 HTTP 请求体,讲清并行启动、EOF、CloseWithError、context 取消和上传重试边界。310 收藏 -
讲清 Go 泛型切片转换中 nil 与空切片的差异,使用 S ~[]E 保留命名切片类型,并给出类型推断与复制边界的实用写法。310 收藏 -
Golang · Go问答 | 2个月前 | 超时 · 错误处理 · go · Context · errors.Is Go context deadline exceeded WithCancelCause
Go 服务里看到 context deadline exceeded,不代表所有请求都只是超时。本文从上游主动取消、下游调用超时和本地截止时间三种现场出发,演示 WithCancelCause、Cause 与 errors.Is 的判断顺序,让日志能指出真正的中断来源。309 收藏 -
Go 的 context.WithCancelCause 能让调用方同时看到 context.Canceled 和真正的取消根因。本文用一个请求链示例拆解取消传播、Cause 读取、父子上下文竞速与错误包装边界。309 收藏 -
Go 复用 time.Timer 时,Reset 的调用时机、旧值处理和 Go 版本语义容易混在一起。本文用一个超时循环拆开 stopped、expired、drain 与 1.23 之后的行为边界。309 收藏 -
Golang · Go问答 | 1个月前 | 标准库 · golang · HTTP · url · Go问答 · Go path net/url RawPath url.URL.JoinPath URL转义
Go 的 url.URL.JoinPath 会清理路径片段,但不会替你判断斜杠是分隔符还是数据。本文用 Path、RawPath 和 PathEscape 对比说明 URL 拼接与转义的边界。309 收藏 -
用 Go 逐行解析简单配置文本:统一换行,跳过空行和整行注释,用 strings.Cut 保留值中的等号,并为格式错误与重复键返回行号。309 收藏 -
Go nil 接收者调用方法不一定会 panic,关键要区分 nil 指针、nil 接口以及方法体是否发生字段解引用。本文用最小示例和检查表定位真实的 panic 边界。309 收藏 -
Go bufio.Writer 的 Available 返回当前内部缓冲还剩多少字节。本文用 Size、Buffered 和 Available 的关系设计批量写入,说明容量不足、超大记录、AvailableBuffer 以及 Flush 错误检查的处理方式。309 收藏 -
Go time.Ticker 只负责按周期发送时间信号,不会自动结束 goroutine。本文用 context、select 和 WaitGroup 实现可停止的周期任务,并说明 Stop 不关闭通道、慢任务丢 tick 和 Reset 的边界。309 收藏 -
用Go x509.VerifyOptions校验证书时,Roots、Intermediates和DNSName分别承担什么职责?本文给出CertPool组装方法、常见错误排查顺序和吊销检查边界。309 收藏 -
sync.Map 的 Range 适合遍历当前可见条目,却不提供并发快照。本文用 Store、Delete 与 Range 的交错过程拆开这个边界,并给出需要一致视图时的替代写法。308 收藏 -
Go 通过 cgo.Handle 把 Go 值暂存给 C 侧时,关键不是把指针强行塞过去,而是明确句柄的创建、回调取值和 Delete 释放边界。本文用一个回调桥接例子说明生命周期、并发与异常清理。308 收藏 -
解释 Go sync.WaitGroup 把 Add 放进 goroutine 的竞态窗口,并给出先计数再启动任务的安全写法、循环边界和排查清单。308 收藏 -
Go os.OpenFile 的第三个参数不是跨平台 ACL 开关。本文拆分 flag、perm、Windows 只读属性和 ACL,解释 0644 在 Windows 上为何不能等同于 Unix 权限,并给出跨平台写文件的排查清单。308 收藏