Go语言技术文章
-
用 Go net/textproto 读取原始 HTTP 风格请求头,掌握 ReadMIMEHeader、重复字段、续行、键名规范化和输入长度边界。434 收藏 -
Go 泛型类型推断不会单独替你选择更窄的类型范围:实参或上下文先给出候选类型,约束再检查它是否允许。本文比较 any、方法约束和类型集合约束,并说明推断失败时的显式写法。102 收藏 -
Go 控制 multipart 请求体积不能只调大或调小 maxMemory。本文用 MaxBytesReader 限制总 body,用 ParseMultipartForm 管理解析内存,再用 MultipartReader 和 LimitReader 控制单个 part,补上数量、临时文件和错误处理边界。493 收藏 -
Go 泛型函数的类型推断失败,通常不是函数体问题,而是普通实参、赋值上下文或类型约束没有共同解。本文用最小示例拆解常见报错,并给出显式实例化和边界检查方法。114 收藏 -
Golang · Go教程 | 1个月前 | HTTP · 文件上传 · Go教程 · 错误排查 · 文件上传 Go multipart/form-data mime/multipart boundary
Go 的 mime/multipart 报错时,先检查 Content-Type 里的 boundary,再对照请求体分隔线、CRLF、结束标记和 ReadForm 限制。本文给出发送端与解析端的稳定写法和排查清单。197 收藏 -
Go 类型推断会从泛型函数的普通实参、赋值上下文和类型约束中补全类型参数。本文用命名切片、无类型常量和部分显式参数说明推断路径,并整理泛型类型不能省略参数的边界。364 收藏 -
Go 处理 multipart/form-data 时,不必手写字符串切割 Header。使用 Part.FormName 读取 name,使用 FileName 判断文件字段,再按场景选择 MultipartReader 或 ParseMultipartForm。225 收藏 -
Go 没有直接限制 embedding 层级的语法。想控制外层 API,应把匿名嵌入改为命名字段并用包装方法转发;窄接口只能限制调用方的静态视图,遮蔽也不会删除底层成员。124 收藏 -
Go compress/gzip 默认会把连续 gzip 成员合并读取,第一次 io.EOF 不一定代表单个成员结束。本文用 Multistream(false)、Reset 和 bufio.Reader 区分成员边界、正常尾部与损坏数据。322 收藏 -
Go embedding 的字段冲突要先看选择器路径:同层同名会产生歧义,外层同名会隐藏嵌入字段,而方法提升还要单独检查签名与显式调用路径。本文用最小示例说明如何定位并修复。438 收藏 -
Go compress/gzip 出错时要分开检查 Write、gzip.Writer.Close、底层 Close 和读取是否到达 io.EOF。本文用写入与读取示例说明流关闭顺序、GZIP 尾部校验和最小错误定位方法。272 收藏 -
Go embedding 会把嵌入字段的部分方法提升到外层结构体,但值与指针接收者仍受方法集规则限制。本文用字段路径、同名冲突和接口赋值说明如何正确读取与转换。199 收藏 -
Go 读取 gzip 不只是调用 gzip.NewReader:本文从单个 .gz 文件讲到串联 gzip 成员,说明 io.EOF、ErrChecksum、Multistream(false) 和 Reset 应该怎样配合。144 收藏 -
Go 的方法集决定类型能否实现接口。本文用指针接收者、自动取地址、嵌入和 map 元素几个边界,说明如何稳定限定 T 与 *T 的实现范围。173 收藏 -
Go archive/tar 打包目录时,使用 filepath.Rel 计算相对路径,再覆盖 Header.Name 并统一斜杠,就能控制 tar 内部目录层级,同时区分归档路径与解压目标路径。248 收藏