Go教程技术文章
-
Go 1.24 及以上通过 http.Transport.Protocols 限定客户端使用 HTTP/1、HTTP/2 或明文 h2c,并用 Response.Proto 验证实际协商结果。410 收藏 -
Go 的 http.NewResponseController 能统一调用刷新、截止时间、连接接管与全双工能力。本文用场景对比和完整示例讲清选择方法与边界。194 收藏 -
net.Dialer.ControlContext 会在套接字创建后、真正拨号前提供受保护的 RawConn。本文给出 Linux 下设置 SO_SNDBUF 与 TCP_USER_TIMEOUT 的完整写法,并讲清双层错误、网络类型和跨平台边界。139 收藏 -
用 Go 的 mime.WordDecoder.DecodeHeader 解码 RFC 2047 邮件主题,区分 Decode 与 DecodeHeader,配置 CharsetReader,并排查未知字符集和地址解析边界。430 收藏 -
Go 的 bits.Add64 能同时返回 64 位和与一位进位。本文从 128 位加法扩展到任意长度 uint64 切片,讲清字序、进位传播、不等长补零和最高位溢出处理。325 收藏 -
Go 的 big.ParseFloat 通过 prec 控制二进制有效位数,通过 RoundingMode 决定舍入方向。本文用可复用代码说明参数选择、Accuracy 判断和展示精度之间的边界。363 收藏 -
Go 1.23 的 maps.Insert 可以把 iter.Seq2 产生的键值对直接写入已有 map。本文用 slices.All、maps.All 和自定义序列说明最小写法、覆盖规则、nil map 限制,并对比 Insert、Collect 与 Copy。370 收藏 -
slog.LogAttrs 直接接收类型化 Attr,可跳过 Log 的交替键值解析和通用参数转换;再配合 Logger.With、Enabled 与基准测试,可以减少热点日志中的重复工作和不必要分配。180 收藏 -
讲清 Go fs.WalkDir 跳过指定子目录的正确写法:仅在目录节点返回 fs.SkipDir,并区分按名称与按相对路径排除,同时处理错误、根目录和非目录边界。290 收藏 -
Go 的 io.Pipe 可把只会写入的生产者连接到只会读取的消费者。本文用完整示例说明同步背压、关闭顺序、错误传播以及避免 goroutine 阻塞的方法。218 收藏 -
Go 的 io.MultiWriter 会把同一批字节按传入顺序写入多个 io.Writer,某个目标出错后立即停止。本文用文件和内存缓冲区示例说明用法、错误边界与并发注意事项。158 收藏 -
Go io.NewOffsetWriter 把相对偏移映射到底层 WriterAt 的 base+off,适合文件分区、文件头和分段写入。本文讲清 Write、WriteAt、Seek、io.CopyN 及上限保护。175 收藏 -
用 Go 标准库 suffixarray.Index.Lookup 查找重复字节片段,讲清 n 参数、无序偏移、字节下标和空结果边界,并给出可直接改造的示例。299 收藏 -
Go 读取 JPEG 宽高无需先解码像素:jpeg.DecodeConfig 会返回 ColorModel、Width 和 Height。本文用一次故障复盘讲清 Reader 消费、像素门禁与二次解码边界。408 收藏 -
Go 读取动态 GIF 应使用 gif.DecodeAll;返回值的 Image 与 Delay 按下标对应,Delay 单位是百分之一秒,换算时乘 10 毫秒。322 收藏