Go教程技术文章
-
用 iter.Pull 把 Go 的 iter.Seq 转成 next/stop 拉取式接口,说明按需读取、正常结束、提前停止、Pull2 和并发调用的边界。217 收藏 -
Go 测试遇到环境、资源或输入条件不满足时,可以用 testing.T.Skip 或 Skipf 标记为跳过并保留原因。本文说明如何划分 Skip、Fail 与 Fatal 的边界,并给出条件测试、子测试和模糊测试的写法。217 收藏 -
Go encoding/hex NewEncoder 返回一个 io.Writer,适合把网络、文件或协议分片连续编码成小写十六进制文本。本文说明 Writer 链、Write 返回值、下游错误和一次性编码 API 的选择边界。217 收藏 -
Go net/http/pprof 默认会注册一组运行时诊断处理器,但诊断入口不应该跟业务接口一起匿名暴露。本文用专用 ServeMux 和鉴权中间件把请求从入口、校验、profile 输出到工具消费串成一条链,并说明拒绝响应、采集时长和关闭诊断服务的边界。217 收藏 -
Go gopacket 可以直接把内存中的 []byte 按指定起始层解码成 Packet,再通过 Layers、Layer 和具体协议层读取以太网、IP、TCP 或 UDP 字段。本文给出一套可复用的内存帧解码写法,并说明错误层、Lazy、NoCopy 与批量解析的边界。217 收藏 -
Go AST 可通过 FuncType.TypeParams 提取泛型函数的类型参数。本文给出名称展开、约束格式化和注释转义的完整示例,说明自动生成文档时的失败处理与语义边界。217 收藏 -
Go 1.25 中可以用 runtime/debug.SetCrashOutput 把未处理 panic 和致命错误追加写入单独文件。本文用一个可运行的崩溃留证流程,说明文件轮转、监控进程接收和恢复边界。216 收藏 -
Go cmp.Or 可以从多个同类型候选值中返回第一个非零值,适合表达环境变量、配置文件和代码默认值的优先级。本文拆开零值约定、comparable 类型限制、参数提前求值和配置流水线中的错误边界。216 收藏 -
Go 1.27 调整了 go tool trace 的 -http 监听语义:只写端口时默认限制为本机。本文区分 trace 数据生成与查看服务,并给出本机监听、显式对外监听和迁移检查方式。216 收藏 -
基于Go snowflake v0.3.0,介绍默认节点范围、环境变量配置、共享Node生成编号及扩容边界,区分理论序列容量与实测吞吐,并说明编号存储和性能记录方法。216 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · HTTP · Go教程 · Go MIME Content-Type charset boundary mime.ParseMediaType
Go mime.ParseMediaType 可以把 Content-Type 或 Content-Disposition 拆成规范化媒体类型、参数 map 和 error。本文说明 charset、boundary、引号参数、参数缺失与格式错误的处理边界。216 收藏 -
Go http.Header.WriteSubset 不会替 exclude 的键做规范化。本文拆开 Set/Add、直接写 map 与排除映射的关系,给出稳定过滤 Header 的写法和兼容旧数据的处理边界。216 收藏 -
Go 写 SSE 接口时,关键不是循环写字符串,而是正确设置 text/event-stream、用 http.Flusher 刷新缓冲,并用 Request.Context 感知浏览器断开。本文给出可落地的 Go 服务端与浏览器接收示例,补充心跳、代理缓冲和重连边界。215 收藏 -
Go 读取包含 0x00 的二进制流时,不要把零字节当成文本结束符。本文解释 Scanner 的限制,并用 bufio.Reader 和 io.ReadFull 处理分隔帧、固定长度帧与 io.EOF。215 收藏 -
用 Go io.MultiWriter 将同一份输入同时写入文件和 SHA-256 摘要,理解顺序写入、短写、错误中断与临时文件提交,避免文件和校验值不一致。215 收藏