Go教程技术文章
-
Go crypto/x509.ParsePKIXPublicKey 面对的是 PKIX SubjectPublicKeyInfo 公钥数据。本文从 PUBLIC KEY PEM 输入出发,说明如何解码、解析并用类型分支识别 RSA、ECDSA、Ed25519、ML-DSA 与 X25519 公钥,顺带厘清它和完整证书、PKCS#1 公钥的边界。232 收藏 -
用 github.com/pkg/sftp 区分单文件请求上限、文件任务池和读写方向,并用 ReadFromWithConcurrency 精确控制一次传输的并发度。232 收藏 -
把配置中的超时统一写成 500ms、2s 这类带单位字符串,在 Go 程序入口解析为 time.Duration,再复用于 context、HTTP 客户端和定时任务,避免裸整数造成单位误读。232 收藏 -
用一个可复用的 Go 最小示例说明 errors.Join 如何同时保留多个底层错误,解释 nil 处理、错误树检索、errors.Is/As 的选择,以及不要误用 errors.Unwrap 的边界。232 收藏 -
Go 的 encoding/hex Dump 能把协议字节排成带偏移、十六进制列和 ASCII 侧栏的可读文本。本文说明 Dump、DumpString 与 Dumper 的选择,并用静态示意解释如何定位字段边界。232 收藏 -
测试依赖用户主目录的 Go 代码时,先按平台选择 HOME 或 USERPROFILE,再用 t.TempDir 与 t.Setenv 注入临时路径,并覆盖空值错误分支。本文给出可复用的断言结构和 Cleanup 边界。231 收藏 -
Go 1.27 的 atomictypes modernizer 可将适用的旧式原子函数访问迁移为强类型原子对象。本文说明限定分析器的命令、计数器迁移示例,以及初始化、对象复制、接口兼容和回归检查的边界。231 收藏 -
Go net/url 解析 https://example.com/items? 时,RawQuery 为空并不代表原始 URL 没有问号。本文用 URL.ForceQuery 区分没有查询、空查询和带参数查询,给出解析、修改和输出请求 URI 的最小配方。231 收藏 -
围绕 Go archive/tar 流式写入大归档文件,讲清 Header.Size、WriteHeader、Write、Close 的配合,以及结果为空或截断时的排查顺序。231 收藏 -
Go encoding/hex 的 Dump 适合一次性生成十六进制转储,Dumper 则把分段 Write 的二进制数据持续写成接近 hexdump -C 的可读格式。本文说明 Write、Close、半行补齐和错误处理的责任边界。231 收藏 -
Go crypto/tls 的 ConnectionState 会记录 TLS 连接的协商状态,其中 DidResume 用于表示本次连接是否从既有会话成功恢复。本文说明读取时机、首次握手与会话恢复的区别,以及如何把结果用于日志和指标。230 收藏 -
Go map 可以在 range 遍历中删除已经判定过期的键,但新增键本轮是否出现没有保证。本文结合缓存清理场景说明直接删除、先收集再删除和延后新增的取舍。230 收藏 -
用 github.com/google/uuid 处理 UUID 字符串时,外部输入应使用 Parse 并保留 error,固定可信常量才使用 MustParse,统一输出交给 String;严格 API 外形还要额外约束。230 收藏 -
说明 Go 1.27 在 macOS 上使用 SSL_CERT_FILE 和 SSL_CERT_DIR 的规则,结合证书来源、进程环境、证书池缓存与客户端示例,解释生效条件、错误判断和恢复方法。230 收藏 -
strings.Builder.Reset 会清空已写内容;复用时应分别观察 Len 与 Cap,再按下一轮写入规模决定是否 Grow,并避开复制非零 Builder 的风险。230 收藏