Go语言技术文章
-
Go time.Duration 序列化成 JSON 时,裸数字代表纳秒,容易被误读为毫秒。本文给出带单位字符串、明确单位整数和旧数据迁移的协议设计方法。394 收藏 -
用 Go 的 filepath.Clean、Join 和 Rel 处理用户提供的相对路径,说明 Clean 只能做词法归一化,并给出安全根目录边界判断的完整写法。393 收藏 -
Go -race 只能发现运行时真正触发的竞态,而且典型开销明显高于普通测试。本文把 CI 拆成快速层、并发重点层、全量竞态层和长链路层,说明如何配置 -p、-parallel、GOMAXPROCS,并区分真实竞态与资源型失败。393 收藏 -
Go 的 iter.Seq 用 yield 回调交付序列元素,以布尔返回值约定是否继续。本文通过只取前三个编号的示例,说明按需生成、提前停止、资源清理与重复遍历的职责,并区分惰性、缓存和并发。393 收藏 -
Go httptrace.WroteRequest 回调中的 Err 只描述请求写入阶段,不能单独证明服务端是否收到或处理了请求。本文用阶段化 trace、主流程错误和幂等重试边界,说明如何判断请求状态。393 收藏 -
Go strings.IndexFunc 接收一个 rune 判断函数,返回第一个满足规则的 Unicode 字符在原字符串中的字节偏移;没有匹配时返回 -1。本文用 Unicode 字符属性和自定义规则说明最小写法、字节边界及未命中处理。393 收藏 -
Go io.Copy 返回的写入长度与源文件大小不一致时,问题通常出在 Reader 范围、读取游标、目标文件尾部或字节与字符的单位差异。本文给出一套可执行的排查顺序,并说明已知长度时如何使用 io.CopyN。393 收藏 -
Go 1.27 支持在方法声明中使用类型参数。本文从接收者、调用推导和接口限制三个边界说明 generic method 怎样复用类型参数,并给出适合工程代码的设计方式。393 收藏 -
用 Go 的 text/scanner.Scanner 从 UTF-8 文本中逐个读取词元,掌握 TokenText、Position、Pos、Mode、Whitespace 和错误回调的边界,适合配置文件、轻量 DSL 与源码片段的词法扫描。393 收藏 -
Go 1.22 起,ServeMux 可以在路由模式中声明路径通配符,再用 Request.PathValue 读取变量。本文用最小示例说明单段、多段路径变量和空值边界。393 收藏 -
Go cfg.New 可以把一个函数体转换成简单控制流图。本文从 AST 函数体出发,说明 mayReturn 回调、CFG.Blocks、Block.Nodes、Succs 与 Kind 的关系,并给出分支、返回和不返回调用的处理方式。393 收藏 -
解释 Go Paho MQTT 的 WaitTimeout、Done 和 Error 如何协作,说明返回 false 只是等待超时而不是取消请求,并给出 WaitTokenTimeout 与业务取消的处理方式。393 收藏 -
Golang · Go问答 | 1星期前 | go · Context · 服务端 · net/http · Go http.server context.Context 请求上下文 BaseContext ConnContext
Go http.Server.BaseContext 用于为一个监听器接收的请求提供统一根 context,默认是 context.Background()。本文用最小示例说明它与 ConnContext、Request.Context 的区别,以及取消、返回 nil 和多监听器场景的边界。393 收藏 -
Go encoding/binary.AppendByteOrder 提供了把整数追加到已有字节切片的接口。本文用 BigEndian、LittleEndian 和 NativeEndian 对比说明字段追加、缓冲区复用与跨平台协议的选择边界。393 收藏 -
介绍 Go flag.FlagSet.VisitAll 如何遍历全部已定义参数,读取 Name、Usage、DefValue 生成帮助文本,并解释它与 Visit 只遍历已设置参数的区别。393 收藏