Go语言技术文章
-
Go regexp.QuoteMeta 会转义普通文本中的正则元字符,让用户关键词按字面参与匹配。本文说明如何只转义动态片段、保留固定规则,并区分模式转义与替换模板边界。219 收藏 -
Go mime/multipart 读取 multipart 数据时,NextRawPart 会保留 quoted-printable 等原始传输编码。本文用最小示例说明 boundary 解析、io.EOF 判断、Part 读取和 NextPart 的选择边界。281 收藏 -
Go math/big.Int.Append 可把数字文本追加到字节切片。本文通过记录接口说明返回值接收、缓冲区复用、结果复制及参数错误处理。476 收藏 -
Go maphash.Hash 的哈希结果取决于 Seed 与写入字节序列,而不是字节通过 WriteString 还是 Write 进入。本文说明两条写入路径的等价条件、顺序边界、Reset 用法和 Hasher 中的编码方式。295 收藏 -
Go crypto/x509 CertPool 可以把 PEM 格式的自定义根证书接入 TLS 客户端或证书链验证。本文区分空池与系统池、讲清 AppendCertsFromPEM 的返回值,并给出 RootCAs 与 VerifyOptions.Roots 的配置边界。434 收藏 -
Go crypto/tls Config.Clone 适合在复用基础 TLS 配置时派生按连接修改的副本。本文说明浅层克隆、证书池和回调的共享边界,并解释会话恢复对验证回调的影响。391 收藏 -
Go 生成登录链接、一次性令牌或接口随机值时,应让 crypto/rand.Reader 填充固定长度的字节缓冲,再按传输场景编码。本文解释字节长度、Read 错误、RawURLEncoding 和边界处理。341 收藏 -
Go strings.Replacer.WriteString 接收 io.Writer,直接写出替换后的文本,并返回实际写入字节数与错误。本文用 bytes.Buffer 和部分写入 Writer 说明调用方式、错误判断及与 Replace 的选择。278 收藏 -
Go ascii85.Encode 的关键不是把目标切片容量设大,而是让目标切片长度足够,并用返回值截取有效结果。本文用 MaxEncodedLen 预留空间,解释 dst[:n]、尾部片段、z 缩写以及一次性编码和流式编码的边界。424 收藏 -
用 http.Transport.Clone 从基础 Transport 创建客户端专属副本,说明导出字段复制、请求前配置、空闲连接关闭和并发修改边界,避免多个 http.Client 共享配置时互相影响。280 收藏 -
解释 Go database/sql 中 Rows.Next 返回 false 的两种原因,给出 Rows.Err 的标准收口写法,并覆盖 Scan、上下文取消、Close 与多结果集的错误边界。263 收藏 -
用指针与Elem准备Go reflect.Value.Set的目标存储,区分CanAddr和CanSet,给出受限赋值函数,并说明类型可赋、未导出字段、接口槽位及批量配置的处理边界。311 收藏 -
通过动态比较小函数说明Go reflect.Value.Comparable与Type.Comparable的差异,处理接口字段、nil、不同类型及不可比较输入,区分可比较、相等和排序能力。252 收藏 -
Go cmp.Compare 返回 -1、0、1 三种排序结果,适合直接表达字段比较;多字段排序时可用 cmp.Or 保留第一个非零结果,再交给 slices.SortFunc。本文用订单示例说明升序、降序与浮点边界。207 收藏 -
Go cmp.Or 可以按参数顺序返回第一个非零值,适合组织请求配置、环境变量和代码默认值的回退链,也能串起多字段排序比较。本文说明零值、comparable 约束与参数求值边界。110 收藏