Go教程技术文章
-
Go encoding/base64.AppendEncode 会把 Base64 结果追加到已有字节切片并返回扩展后的切片。本文说明 dst 前缀、EncodedLen 容量预留,以及 StdEncoding、RawStdEncoding 和 URLEncoding 的选择边界。113 收藏 -
用一个有界任务队列说明 Go sync.Cond 的条件等待、关联锁、Wait 循环以及 Signal 与 Broadcast 的选择,重点解释为什么被唤醒后仍要重新检查共享状态。235 收藏 -
sync.OnceFunc 返回的函数不提供是否执行、执行中或初始化成功的查询接口。本文用 atomic.Uint32 设计外部状态,把可观测性与一次性执行职责分开,并处理并发读取与 panic 边界。202 收藏 -
Go strconv.ParseFloat 的 bitSize 选择浮点精度而非小数位数。本文用传感器读数入口说明舍入、范围错误、NaN与无穷大,以及业务上下限的处理。424 收藏 -
Go strconv.AppendQuote 可以把字符串以带引号的转义形式追加到已有 []byte。本文从容量预算、Quote 对比、控制字符和无效 UTF-8 边界出发,给出低分配写法与 Benchmark 记录方法。372 收藏 -
本文用一个升序整数切片说明 Go sort.Find 的比较函数写法、found 结果判断、重复值定位和插入位置边界,重点解释为什么 cmp 必须保持正数、零、负数三段结构。237 收藏 -
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 收藏