Go语言技术文章
-
Go FlagSet 可以为每个子命令建立独立参数集合。本文用标准库示例说明如何切分 os.Args、分别调用 Parse、处理错误与位置参数,并总结公共参数的组织边界。110 收藏 -
Go TLS 排障中,PeerCertificates 表示对端发送的证书列表,VerifiedChains 表示本地构造出的验证链。本文说明如何结合握手状态、客户端与服务端角色判断证书链,避免只凭证书数量下结论。110 收藏 -
用 Go crypto/rand.Read 为令牌填充固定长度的安全随机字节,解释 32 字节预算、十六进制与 Base64 编码长度、错误边界和上线前应观察的生成指标。110 收藏 -
zip.Writer.Close 不只是关闭一个对象,它还要结束当前条目、补写中央目录和结束记录,并刷新内部缓冲,因此部分写入错误会在最后才返回。本文拆开这些职责,说明为什么必须同时检查 Create、Write 和 Close。110 收藏 -
Go x/text/encoding/unicode 的 UseBOM 会在 UTF-16 输入带起始 BOM 时覆盖默认字节序,无 BOM 时再回退到默认值。本文用示例区分 UseBOM、ExpectBOM 和 IgnoreBOM。110 收藏 -
Go cmp.Or 可以按参数顺序返回第一个非零值,适合组织请求配置、环境变量和代码默认值的回退链,也能串起多字段排序比较。本文说明零值、comparable 约束与参数求值边界。110 收藏 -
go.starlark.net/starlark 的 Thread 局部数据属于 Go 侧线程状态,脚本全局变量属于 Starlark 模块环境。本文用一个宿主回调示例拆开两者的可见范围、初始化时机和并发隔离边界。110 收藏 -
go-mp3 的 Seek 使用解码流字节偏移,输出为 16 位小端双声道 PCM;本文说明为什么要按 4 字节 sample 对齐,并给出 Seek、Read 和生产边界处理示例。110 收藏 -
动态查询不能把所有列都写死成 string 或 int64。本文用 ColumnType.ScanType 生成 Rows.Scan 的指针目标,并说明 NULL、[]byte、驱动不支持类型信息和 rows.Err 的处理边界。110 收藏 -
介绍 Go os.Root.Name 获取目录名称的用法,给出打开、读取和关闭示例,说明名称在诊断日志中的用途,以及它与绝对路径、实时位置和资源状态的区别。110 收藏 -
Go bytes.Buffer.Grow 只预留后续写入容量,不会增加有效数据长度。本文区分 Grow、Len、Cap 和 Bytes,说明如何正确写入、读取、复用缓冲区并处理边界。110 收藏 -
用Go标准库crypto/ed25519完成短消息签名与验证,解释私钥、公钥、消息字节和64字节签名的关系,并补充消息被修改、密钥长度、密钥保存与Ed25519选项的边界。110 收藏 -
从实际输入场景说明 fmt.Fscan 如何按空白切分字段、为什么 string 不能直接保留空格,以及需要整行读取时该如何选择 Fscanln、bufio.Scanner 和 Reader。110 收藏 -
Go generate 在 CI 中报找不到命令,通常不是指令没有执行,而是生成器不在 PATH、工作目录与预期不同,或工具安装步骤没有进入同一个 job。本文按命令解析、包源目录、PATH 和流水线检查点给出稳定排查与配置方法。109 收藏 -
Go 上传请求在请求头发出后长时间没有发送请求体,通常要先检查 Expect: 100-continue 与 http.Transport.ExpectContinueTimeout,而不是直接调大响应头超时。本文按服务器响应、零值语义和请求上下文给出排查与配置取舍。109 收藏