Go教程技术文章
-
Go go generate 的参数直接跟在生成命令后面,双引号可以保留带空格的单个参数,GOFILE 等自动变量适合减少硬编码。本文用 flag 和 -command 给出可维护的配置方法。414 收藏 -
用 Go archsimd 实现 16 字节查找,拆解 amd64 的 PermuteOrZero 与 arm64/wasm 的 LookupOrZero 差异,并补齐构建标签、尾部处理和能力边界。414 收藏 -
讲清 Go reflect.Value.IsZero 在 nil 接口、typed nil 指针和接口容器之间的判断边界,给出先检查 IsValid 的安全写法与复查清单。413 收藏 -
Go 的 multipart.Reader 需要保留 quoted-printable 部件时,应使用 NextRawPart。本文对比 NextPart 的透明解码行为,演示安全解析 boundary、保存原始 body,以及按需显式解码的实现边界。413 收藏 -
用 Go strings.IndexByte 定位 ASCII 协议分隔符,结合字符串切片完成低分配字段解析,并说明 -1、UTF-8、空字段和大字符串保留的边界。413 收藏 -
Golang · Go教程 | 11小时前 | 单元测试 · Context · Go教程 · HTTP客户端 · Go 上下文取消 HTTP测试 testing.T.Context http.NewRequestWithContext
Go 1.24 起,testing.T.Context 能把测试生命周期直接传给 HTTP 客户端请求。本文给出最小代码、超时收紧、子测试边界,并解释它与 httptest.NewRequestWithContext 的区别。413 收藏 -
time.Now() 返回的 time.Time 可能同时含墙上时钟与单调时钟读数。本文说明序列化前为什么常用 Round(0) 清理进程私有字段,以及反序列化后如何用 Equal 正确比较时间。413 收藏 -
讲清 Go http.Request.Clone 复制请求并替换目标 URL 的正确写法,覆盖 Host、RequestURI、查询参数和 Body 重发边界。412 收藏 -
Go env -w 会把设置保存为用户级 Go 环境默认值,而命令前的 NAME=VALUE 只影响当前进程。本文用 GOPROXY、GOENV 和 go env -u 说明优先级、适用场景与清理方法。412 收藏 -
filepath.Rel 会按当前操作系统的分隔符、绝对路径和卷名规则计算词法相对路径。本文给出可复用封装,说明不同盘符、绝对与相对混用、ToSlash、符号链接及安全边界,并用表驱动测试验证。412 收藏 -
bufio.Reader.ReadLine 遇到超长文本时会通过 isPrefix 返回多个片段。本文用一个可复用的读取函数说明如何拼接软换行、处理 EOF 与错误,并解释返回切片的生命周期。412 收藏 -
讲清 Go testing.B.ReportMetric 的参数、单位、b.N 归一化、b.Elapsed 计时指标、并行基准汇总和内置指标覆盖边界,配合可直接改写的 Go 示例记录自定义 benchmark 指标。411 收藏 -
Go 使用 json.Decoder.Token 可以按对象边界逐项读取 JSON。本文给出带深度上限的递归实现,说明数组、标量、EOF、语法错误和资源边界。411 收藏 -
围绕 Go os.Open 读取配置的场景,说明如何在打开成功后立即绑定 defer Close,处理读取与解码错误,并避免循环中的文件句柄延迟释放。410 收藏 -
filepath.EvalSymlinks 会逐层解析路径中的符号链接并清理结果。本文给出最小用法、多层相对链接示例、断链和链接环错误处理,以及把最终路径限制在受信根目录内的检查方法。410 收藏