Go教程技术文章
-
Go 1.23 起使用 net.Dialer.KeepAliveConfig 明确设置 TCP 保活开关、空闲时间、探测间隔和未应答次数,并说明旧字段与平台差异。185 收藏 -
errors.Join 传入一个非 nil 错误时仍会返回包装错误。本文用最小示例区分 ==、errors.Is 与 Unwrap() []error,并给出单错误和多错误场景的返回策略。185 收藏 -
maps.Clone 返回新的浅拷贝,不能把已有 map 当作写入目标。若要反复刷新同一容器,应按需求使用 maps.Copy,要求精确替换时先 clear 再 Copy,并注意 slice、指针等 value 仍是浅拷贝。185 收藏 -
Go testing.T.Setenv 会在测试清理阶段恢复环境变量。本文说明父子测试的设置层级、串行子测试的隔离写法,以及 t.Parallel 与进程级环境变量的冲突边界。184 收藏 -
用自定义 Region 类型实现 TextUnmarshaler,接入 Go flag.TextVar,讲清默认值、非法参数与 TextVar、Var、Func 的选择边界。184 收藏 -
Go私有模块可通过GONOSUMDB按路径设置校验数据库例外。本文比较仓库直连与企业代理方案,说明GOPRIVATE继承、GONOPROXY覆盖、go.sum和访问权限的边界。184 收藏 -
Go 1.24 引入 os.OpenRoot 和 os.Root,用根目录句柄处理外部相对路径,避免 filepath.Join 形成的目录逃逸。本文拆解读写、子目录、错误处理和平台边界。184 收藏 -
讲清 Go http.Request.WriteProxy 与 Request.Write 的格式差异,演示如何生成带绝对 URI 的代理请求,并说明 URL、Host、writer 和代理连接之间的职责边界。184 收藏 -
用 slog.HandlerOptions.Level 过滤 DEBUG 日志,并用 slog.LevelVar 在运行时切换最低级别,掌握默认 Logger、Enabled 和多 Handler 的边界。183 收藏 -
逐层复制url.Values的map和值切片,保留空值语义,并通过同步分页编码演示工作副本复用,说明并发交接和分配边界。183 收藏 -
本文说明怎样使用 regexp/syntax.Parse 把 Go 正则模式解析成语法树,并递归读取 Op、Sub、Rune、Min、Max 与 Name,最后区分解析错误和后续匹配结果。182 收藏 -
Go 的 io.MultiWriter 可以把一次 Write 同步转发给多个 io.Writer。本文说明它的调用顺序、错误和短写传播方式,并给出把输出同时写入文件与内存缓冲区的实用写法。181 收藏 -
讲清 Go crypto/mldsa NewPrivateKey 如何使用严格长度的种子恢复可复现私钥,并说明参数集、错误处理和生产保管边界。181 收藏 -
从 DWARF 条目的 AttrType 偏移调用 Go debug/dwarf Data.Type,读取 dwarf.Type 的通用描述,并按结构体、指针和类型别名读取具体字段。181 收藏 -
用 x509.NewCertPool 在内存构造测试信任根,并配置客户端 RootCAs。本文说明 AddCert、PEM解析、httptest示例,以及主机名、证书链和信任隔离。181 收藏