Go教程技术文章
-
Go读取tar成员类型应使用Reader.Next返回的Header.Typeflag。本文比较IsDir与名称后缀,提供只读清单程序,并说明旧式标志规范化、链接、未知类型和EOF的处理。433 收藏 -
介绍 Go crypto/x509 中 NewCertPool 与 AppendCertsFromPEM 的使用边界,演示如何从 PEM 构造独立信任池,并区分追加成功和证书链验证成功。433 收藏 -
用 Go time.LoadLocation 加载 IANA 时区,再通过 ParseInLocation 正确解释不带时区的日期字符串,并说明 Parse 的 UTC 默认值、数字偏移、时区缩写和夏令时边界。433 收藏 -
介绍 Go Zap 如何使用 AtomicLevel 在运行期动态调整日志最低等级,涵盖 Core 接入、SetLevel、文本解析、子 Logger 共享和生产权限边界。433 收藏 -
Goose 默认把单个 SQL 迁移放进事务;本文说明如何用 NO TRANSACTION 让指定文件绕过事务,并处理 Up、Down、失败恢复和上线检查。433 收藏 -
Go regexp 默认采用左侧优先匹配,调用 Longest 后会改为同一起点取更长结果。本文用最小示例比较两种策略,并说明 CompilePOSIX、子匹配和并发配置的边界。432 收藏 -
Go 1.23 的 slices.Collect 可以把 iter.Seq 迭代器结果收集成新的切片。本文说明 slices.Values、自定义序列、nil 结果、深拷贝边界,以及已知长度时如何用预分配 append 控制容量。432 收藏 -
说明Go http.Protocols的三类协议开关,用独立服务端和客户端示例配置HTTP/1与TLS HTTP/2,并解释明文HTTP/2及代理连接边界。432 收藏 -
Go embed.FS 把配置目录编译进程序后,可以用 fs.WalkDir 按路径筛选 YAML 文件并保留遍历错误。本文从嵌入文件树开始,演示目录遍历、扩展名过滤、错误返回和测试检查。431 收藏 -
strings.CutPrefix 一次只判断一个前缀。本文说明多个候选存在重叠时如何按最长优先,业务规则明确时如何保留显式顺序,以及空前缀和未命中的处理方式。431 收藏 -
Go JSON接口增加字段时,先保持旧字段的名字、类型和语义不变,再用可选字段、默认值和灰度读取承接新客户端。本文结合 encoding/json、严格未知字段校验和回滚清单,给出一套不破坏旧客户端的迁移方法。431 收藏 -
Go context.WithCancelCause 能让取消信号继续保持 context.Canceled,同时把超时、依赖失败或主动终止等具体根因沿 context 链路传递给上层。本文用最小示例说明 Err、Cause、父子取消顺序和资源清理边界。431 收藏 -
Go fmt.Errorf 的 %w 能同时保留上下文和底层错误身份,但也会把底层错误纳入接口契约。本文说明包装位置、包边界转换和日志去重策略。431 收藏 -
Go 1.23 起函数可以通过 iter.Seq 形态被 range 消费。本文说明 yield 签名、false 停止协议、资源清理和重复遍历边界。431 收藏 -
Golang · Go教程 | 1星期前 | 错误处理 · TLS · Go教程 · Go crypto/x509 证书过期 主机名错误 CertificateInvalidError HostnameError
Go 的 crypto/x509 中,证书过期通常通过 CertificateInvalidError 的 Expired 原因识别,主机名不匹配则通过 HostnameError 识别。本文比较 Verify、VerifyHostname 和字段检查的边界,并给出 errors.As 分流示例。431 收藏