Go教程技术文章
-
Rows.ColumnTypes 可以在不写死字段结构的情况下读取查询结果的列名、数据库类型、扫描类型以及驱动支持的长度、可空性和小数精度。本文给出动态扫描写法,并说明 ok 标志、驱动差异和资源生命周期。171 收藏 -
sql.RawBytes 引用的是数据库拥有的内存,Scan 后只能使用到下一次 Next、Scan 或 Close。本文说明如何在当前行立即消费,以及什么时候用 append 复制成独立字节切片,避免跨行缓存和异步处理拿到失效数据。159 收藏 -
reflect.Value.IsValid 判断反射值是否存在,reflect.Value.IsZero 判断有效值是否等于其类型零值。本文用 nil 接口、带类型 nil 指针和 reflect.Zero 拆开两者边界,并给出安全调用顺序。477 收藏 -
Go reflect 中,CanAddr 只回答能否取得地址,CanSet 才进一步回答能否修改。本文用普通值、指针 Elem、切片元素和结构字段说明可寻址与可设置的边界。485 收藏 -
当字段集合只有在运行时才能确定时,可以用 reflect.StructOf 根据 StructField 描述构造匿名结构体,再通过 reflect.New 创建可写实例并交给 JSON 编解码。本文按排障手册拆解字段、Value 和边界。335 收藏 -
用 runtime.ReadMemStats 读取 Go 内存快照,区分堆对象当前量、累计分配量与运行时系统量,给出独立局部变量采样和 JSON 输出示例,说明 RSS、GC、并发共享变量与升级回归的边界。366 收藏 -
围绕 Go net/url 的 URL.AppendBinary,说明如何把 URL 序列化结果追加到已有 []byte,如何复用切片容量并处理错误,以及它与 String、EscapedPath 和 MarshalBinary 的调用边界。287 收藏 -
Go 中读取 GOMAXPROCS 当前值时,直接调用 runtime.GOMAXPROCS(0) 即可。本文说明它为什么不会修改设置、默认值从哪里来,以及如何把结果用于启动诊断。200 收藏 -
Go子测试可通过当前t.Setenv临时设置环境并自动恢复。本文给出串行表驱动示例,说明清理归属、空值与未设置状态,以及Parallel、配置缓存和后台任务的限制。480 收藏 -
Go 测试里的通用断言函数如果不调用 TB.Helper,失败日志往往指向工具函数内部。本文用 testing.TB 说明 Helper 的标记位置、调用层级与 Errorf/Fatalf 的配合方式。173 收藏 -
Go 的 image/color.RGBA64 用四个 uint16 表示每通道 16 位的 alpha 预乘颜色。本文从常见的通道值困惑出发,说明字段创建、Color.RGBA 转换、取值范围和 RGBA64 与 NRGBA64 的选择边界。364 收藏 -
Golang · Go教程 | 3星期前 | 错误处理 · TLS · Go教程 · Go crypto/x509 证书过期 主机名错误 CertificateInvalidError HostnameError
Go 的 crypto/x509 中,证书过期通常通过 CertificateInvalidError 的 Expired 原因识别,主机名不匹配则通过 HostnameError 识别。本文比较 Verify、VerifyHostname 和字段检查的边界,并给出 errors.As 分流示例。431 收藏 -
介绍 Go crypto/x509 中 NewCertPool 与 AppendCertsFromPEM 的使用边界,演示如何从 PEM 构造独立信任池,并区分追加成功和证书链验证成功。433 收藏 -
用 Go archive/zip 创建 ZIP 时,通过 FileHeader.Method 选择 Store 或 Deflate,并了解 RegisterCompressor 调整 Deflate 的边界。303 收藏 -
Go读取多段PEM证书应循环pem.Decode并推进rest,再逐块调用x509.ParseCertificate。本文提供限量读取示例,说明混合块、DER错误、顺序保留和解析与信任验证的区别。437 收藏