Go教程技术文章
-
Go maps.Collect 可把键值迭代器收集成新 map。以商品库存索引说明业务键清洗、重复覆盖、查询顺序与切片引用共享,并给出需要返回错误时的显式循环方案。196 收藏 -
Golang · Go教程 | 3星期前 | Context · Go教程 · net/http · Go context.Context ErrHandlerTimeout http.TimeoutHandler HTTP 处理器超时
Go 标准库的 http.TimeoutHandler 可以为单个 HTTP 处理器设置时间边界,超时向客户端返回 503。本文说明最小包装方式、请求上下文取消、响应缓冲,以及它与 Server 超时配置和流式处理的边界。195 收藏 -
Go os.File.Chmod 用 FileMode 更新已有文件的权限位。本文从打开与创建的边界出发,说明 0o600、0o640 的写法、错误处理、修改后读取和 Unix、Windows 差异。195 收藏 -
go/doc/comment.Parser 接收已经去除 // 或 /* */ 标记的文档注释文本,返回可遍历的 *comment.Doc。本文用一个小型源码分析场景说明如何读取段落、标题和链接,并按需要交给 Printer 输出。195 收藏 -
比较Go database/sql结果集的自动关闭、defer和显式关闭,区分QueryContext、Scan、Err、Close的错误入口,用完整读取函数处理早退、迭代失败和关闭错误。195 收藏 -
filepath.Match 不是普通字符串匹配:星号和问号默认不能跨越路径分隔符,模式还必须覆盖完整名称。本文结合文件筛选自动化,解释分隔符、转义、跨平台写法和 ErrBadPattern 的处理。195 收藏 -
testing.T.Context 负责把 Context 绑定到测试生命周期,context.WithTimeout 负责在父 Context 上收紧一次操作的时间预算;-timeout 则是 go test 的总保险。本文用后台任务和子操作示例说明三者如何组合。195 收藏 -
Go Server.ConnState 可统计连接当前状态,但不能替代请求并发数。通过连接状态表、互斥锁和快照示例,解释终态清理、HTTP/2 口径及采集请求对统计的影响。194 收藏 -
io.ReadAtLeast 读取的是至少 min 个字节,不等于一定只读取 min 个字节。本文说明如何控制缓冲区、解析可变长度消息的固定前缀,并处理 EOF、ErrUnexpectedEOF 和 ErrShortBuffer。194 收藏 -
Go 原生 fuzzing 会把种子输入和失败输入保存为语料库。本文说明如何使用 F.Add 与 testdata/fuzz 管理语料,并用 go test 和 -run 复现指定输入。194 收藏 -
Go 的 net/url 适合把地址拆成 URL 结构,再用 Values、JoinPath 和 String 重建。本文给出查询参数、路径转义、相对地址和请求 URI 的处理边界。194 收藏 -
Go 1.27 的 strings.CutLast 可以围绕字符串中最后一次出现的分隔符返回 before、after 和 found。本文用一个小型反向拆分工具说明它的返回契约、未命中边界,并与 Cut、LastIndex、Split 做选择对比。194 收藏 -
bytes.Buffer.Available 返回的是底层缓冲区尚未使用的容量,不是当前可读字节数。本文用固定状态表和最小示例区分 Len、Cap、Available、Bytes,并说明读取与 Reset 后的判断方式。194 收藏 -
Go 的 TLSHandshakeTimeout 只负责 HTTPS 客户端 TLS 握手阶段的等待时间。本文用一个自定义 Transport 拆开连接、握手、响应头和响应体的超时边界,并说明如何根据错误现象选择排查方向。194 收藏 -
Go jsonschema/v5 可以把 JSON Schema 编译成可复用的 *jsonschema.Schema。本文用一个小例子说明如何只编译一次、重复校验多份文档,并区分解析错误、编译错误和 ValidationError。194 收藏