Go语言技术文章
-
围绕 Go encoding/hex.Decode 的 InvalidByteError,说明如何提取非法字节、计算输入位置、区分奇数长度 ErrLength,并封装成可读的解码诊断。432 收藏 -
Go 的 debug/elf.File.Section 用节区名称查找 ELF 中的单个 Section,找不到时返回 nil。本文从打开文件、按名称定位、读取元数据与内容几个环节说明 Data 和 Open 的区别,并补充 SHT_NOBITS 与压缩节区的边界。432 收藏 -
Go WaitGroup 出现 negative WaitGroup counter 通常是 Done 重复调用、Add 与 Wait 时序错误或批次复用不当。本文用最小示例、排查清单和安全写法定位计数失衡。432 收藏 -
Linux mount_setattr() 可以修改单个挂载点或整棵挂载树的只读、禁止执行、设备访问和传播类型等挂载对象属性。本文按目标定位、属性清除与设置、递归修改、C 调用模板和权限边界说明怎样安全地批量调整挂载属性。432 收藏 -
errors.Join 本身会为非 nil 错误建立 joinError 和精确容量的错误切片。本文说明如何在调用方预分配并复用收集空间、把 Join 推迟到边界、避免循环内重复格式化,并区分可减少的临时分配与不可省略的聚合成本。432 收藏 -
Go io.ReadFull 用 n 和 err 表示固定长度读取是否完成:空读到 EOF、部分读取到 ErrUnexpectedEOF,以及底层读取错误需要分开处理。本文给出稳定的判别代码和协议头读取边界。432 收藏 -
围绕 Go slices.Collect 讲清 iter.Seq 到 []E 的收集方式、空输入的 nil 结果、浅拷贝边界和错误保留方案。432 收藏 -
mime.WordDecoder 遇到非内置字符集时,关键不是重写邮件头解析,而是让 CharsetReader 把指定字符集的字节 Reader 转成 UTF-8。本文从故障表现、回调输入到 Windows-1252 接入,说明 DecodeHeader 的错误边界与回归检查点。432 收藏 -
Go io.MultiReader 只有在当前 Reader 返回精确的 EOF 时才会切换到下一个输入;遇到非 EOF 错误会先把错误返回给调用方,不会自动跳过当前 Reader。本文用连续 Read 示例说明 n、err 和 Reader 切换之间的关系。431 收藏 -
施工设计变更应关联原图、申请、设计文件、授权确认、实施与计量资料。本文区分技术、事实和商务确认,说明编号、版本、收发及未决事项的留存方法。431 收藏 -
Go 1.23 起函数可以通过 iter.Seq 形态被 range 消费。本文说明 yield 签名、false 停止协议、资源清理和重复遍历边界。431 收藏 -
Go Mutex TryLock 返回 false 只表示当前没有拿到锁,不应继续读取受保护状态。本文比较阻塞等待、旧快照、快速拒绝和异步转交四种路径,并给出可直接改造的不可变快照示例。431 收藏 -
Golang · Go教程 | 3星期前 | 错误处理 · TLS · Go教程 · Go crypto/x509 证书过期 主机名错误 CertificateInvalidError HostnameError
Go 的 crypto/x509 中,证书过期通常通过 CertificateInvalidError 的 Expired 原因识别,主机名不匹配则通过 HostnameError 识别。本文比较 Verify、VerifyHostname 和字段检查的边界,并给出 errors.As 分流示例。431 收藏 -
通过提醒与截止日期的独立派生示例,说明 DateTimeImmutable 如何保留基准日期、接收链式调用返回值,并处理旧 DateTime 转换与迁移中的赋值误区。431 收藏 -
通过上传元数据示例说明 TypedDict 如何用 Required、NotRequired 和 total 标记部分必填字段,区分缺键与 None,并给出读取方式、版本注意及运行时边界。431 收藏