Go语言技术文章
-
filepath.Clean 只做路径字符串的词法规范化,不能判断用户是否有权访问某个目录。本文用 Go 示例拆开 Clean、Rel、IsAbs 与符号链接检查的边界。437 收藏 -
httptest.NewTLSServer 使用自签名测试证书,直接交给默认 http.Client 往往会出现 x509 unknown authority。本文说明怎样复用 ts.Client(),怎样在保留证书信任的前提下增加超时或 Transport 配置,以及完全自建 Transport 时如何补回测试证书。437 收藏 -
Go modules 下载依赖超时时,先区分代理、版本库直连和校验服务,再按回退规则切换 GOPROXY,避免把关闭校验当成万能方案。437 收藏 -
Go net.Dialer 通过 LocalAddr 指定客户端拨号使用的本地地址。本文用 TCPAddr 说明本地 IP、固定端口、端口 0 与 tcp4/tcp6 地址族的选择边界。437 收藏 -
Go 读取稀疏 tar 条目时,Header.Size 表示逻辑文件大小,稀疏空洞会由 Reader 以 NUL 字节呈现。本文区分逻辑长度与归档实际载荷,说明如何流式读取、设置大小上限,并避免手工计算下一个条目的偏移。437 收藏 -
Go读取多段PEM证书应循环pem.Decode并推进rest,再逐块调用x509.ParseCertificate。本文提供限量读取示例,说明混合块、DER错误、顺序保留和解析与信任验证的区别。437 收藏 -
Go 的 FindStringSubmatchIndex 返回 -1 时,通常表示对应可选捕获组没有匹配,而不是整体正则失败。本文拆解 nil、-1,-1、空匹配和字节偏移的区别,并给出安全读取索引的写法。437 收藏 -
Go HTTP 请求变慢时,httptrace.ClientTrace 可以把 DNS、连接、TLS、写请求和首字节等阶段拆开记录。本文给出标准库用法、复用连接判断、回调缺失分析和超时排查边界。437 收藏 -
Go 类型别名保留原类型身份,定义类型则引入新的身份。结合编号类型示例说明直接赋值、显式转换、方法集和业务校验的区别,并分析接口迁移与领域隔离的取舍。437 收藏 -
Go crypto/x509 解析证书后,可从 Certificate.Extensions 按 OID 查找自定义扩展,再用 encoding/asn1 解码 pkix.Extension.Value。本文区分 Extensions 与 ExtraExtensions,说明 DER 边界、关键扩展和常见找不到原因。437 收藏 -
Go math/big 的 big.Int.SetString 能按 base=0 自动识别常见前缀,也能按 2 到 62 的显式进制解析大整数文本。本文说明前缀、下划线、大小写和失败返回值的边界,并给出可复用的选择流程。437 收藏 -
Go http.Server.ReadHeaderTimeout 用于限制请求头读取时间,适合收敛迟迟发不完整请求头的连接。本文给出显式 Server 配置、超时字段边界、慢请求验证方法,以及 ReadTimeout、WriteTimeout、IdleTimeout 和 MaxHeaderBytes 的配合清单。437 收藏 -
用 Gonum mat.SymDense 构造对称矩阵,通过 Cholesky.Factorize 判断正定性并取得分解,读取 L/U 三角因子,再把同一分解用于线性方程组求解,同时说明非正定和维度错误的处理边界。437 收藏 -
go mod tidy 负责按源码导入关系整理 go.mod、go.sum 和模块依赖,不负责关闭文件、HTTP 连接或 goroutine。本文区分模块缓存与运行时资源,给出依赖观察、缓存清理和程序资源泄漏的排查方法。437 收藏 -
说明Go path.Join与net/url.PathEscape的职责边界,演示只转义一个动态URL路径片段,并用输入检查封装成可复用的资源路径构造函数。437 收藏