Go语言技术文章
-
encoding/binary 的 AppendUint32 适合把固定宽度整数连续追加到字节切片。本文从 ByteOrder 与 AppendByteOrder 的接口差异入手,演示如何按统一字节序构造多字段数据、按四字节边界解码,并说明容量预分配、PutUint32 与 AppendUint32 的取舍。436 收藏 -
已有 JSON 对象需要嵌入另一个 JSON 时,SJSON 应使用 SetRaw 或 SetRawBytes,而不是把对象当普通字符串传给 Set。本文从类型边界、原始片段校验和审计记录三个方面给出可落地写法。435 收藏 -
Go 自定义类型实现 encoding.TextMarshaler 后,可以用 MarshalText 统一输出 UTF-8 文本,并被部分标准编码包复用。本文从接口目标、接收者选择、错误边界和 JSON/XML 调用方讲清实现方式,再补上 TextUnmarshaler 的可逆设计。435 收藏 -
Go net/http 使用 http.Client.Timeout 设置客户端请求总超时,本文用一个可复用的小项目说明总预算、请求级 context、Transport 分阶段超时和超时错误识别。435 收藏 -
Go RawURLEncoding 不接受等号,需按发送方选择 URLEncoding 或无填充配置。本文给出兼容函数、预期样本与基准方法,说明错误处理和适用边界。435 收藏 -
Go 反射中的 CanConvert 用来判断 Value.Convert 是否会因转换规则触发 panic。本文从 Go 1.17 的迁移场景出发,说明基础类型、命名类型、切片转数组的长度边界,以及为什么可转换不等于数值无损。435 收藏 -
Go 分块 NFC 不能把任意片段独立正规化后拼接。本文比较整体、流式与追加接口,说明组合字符接缝、Writer 收尾及安全边界的选择方法。435 收藏 -
sync.OnceValue 不只缓存成功返回值:初始化函数一旦 panic,后续调用也会复现同一个 panic。本文结合标准库实现解释 once、valid、recover 与结果缓存的关系,并说明何时应该改用可重试方案。435 收藏 -
Golang · Go教程 | 1星期前 | Go教程 · Go net/http 反向代理 httputil ReverseProxy NewSingleHostReverseProxy Rewrite SetURL
Go 构造反向代理目标时,应先把后端地址解析成 url.URL,再交给 httputil.NewSingleHostReverseProxy。本文说明 scheme、host、基础路径和查询参数如何参与转发,并比较 Rewrite、SetURL 与旧 Director 的适用边界。435 收藏 -
Go 语法允许单返回值写成裸类型,但 go/types.Signature.Results 统一返回 Tuple。本文说明单返回值、命名结果、多返回值与空结果在类型模型中的对应关系,并给出安全读取 Len 与 At 的方法。435 收藏 -
Go 标准库 multipart.Reader.NextPart 返回一个 Part,普通字段通常没有文件名,文件部件可以通过 FileName 识别。本文用一个可复用的遍历函数说明 FormName、FileName、io.ReadAll、io.Copy 和 io.EOF 的边界,并补充 NextPart 与 NextRawPart 的差异。435 收藏 -
Go io.LimitReader 适合放在任意 io.Reader 消费者前面建立字节上限。本文说明它与 io.ReadAll、io.Copy、JSON Decoder 的组合方式,并用 limit+1 读取区分正常 EOF、输入超限和底层错误。434 收藏 -
Go crypto/tls 在启动时加载多份证书,用 GetCertificate 按 SNI 精确选择并拒绝未知名称。示例说明回调调用条件、只读映射、兼容性及证书信任和业务鉴权的区别。434 收藏 -
解释 Go io.MultiWriter 按顺序写入多个 Writer 的行为,区分错误、短写入和部分结果,并给出失败后的重试与补偿判断方法。434 收藏 -
Go ECDSA Sign 摘要长度报错通常源于原始字节与文本编码混用,或哈希选项不匹配。本文比较三个签名入口,给出 SHA-256 签名验签示例及参数排错表。434 收藏