Go教程技术文章
-
围绕 Go net/http Client 讲清 Transport 复用、Response Body 关闭、读到 EOF、状态码判断和异常场景检查清单,给出可复用的请求封装方案。232 收藏 -
Go archive/zip 读取 ZIP 清单时,可以先访问 Reader.File 和 FileHeader,只拿名称、大小、压缩方式等中央目录信息;确认需要正文后再调用 File.Open。231 收藏 -
Golang · Go教程 | 2天前 | go · https · Go crypto/tls按ServerName选择证书 tls.Config.GetCertificate ClientHelloInfo.ServerName Go SNI证书 Go多域名HTTPS
围绕 Go crypto/tls 的 ClientHelloInfo.ServerName,说明如何在 GetCertificate 中按 SNI 选择 tls.Certificate,处理未知域名、无 SNI 的默认回退,并区分 GetConfigForClient 的适用边界。230 收藏 -
Go unsafe.Slice 可以从 *byte 指针和长度构造共享底层内存的字节切片,但不会复制、扩容或管理内存。本文说明 nil 与零长度、真实对象边界、指针生命周期和读写权限的使用契约。225 收藏 -
Golang · Go教程 | 5天前 | 文件处理 · Go教程 · Go archive/tar Go tar归档头 archive/tar Reader.Next Go读取tar文件 Go解包元数据
用 archive/tar.Reader 的 Next 逐条读取 tar 归档头,解释 Header 元数据、正文读取、目录跳过以及 EOF 和不安全路径处理。225 收藏 -
Go 处理 multipart/form-data 时,不必手写字符串切割 Header。使用 Part.FormName 读取 name,使用 FileName 判断文件字段,再按场景选择 MultipartReader 或 ParseMultipartForm。225 收藏 -
io.SectionReader 只能读取创建时指定的逻辑窗口。本文解释 [off, off+n) 边界、Read 与 ReadAt 的 EOF 表现,以及跨范围读取时如何选择扩大窗口或访问底层 ReaderAt。223 收藏 -
Go container/heap 的堆顶不对,通常不是 Push 自己排序失败,而是 Less 方向、Init 时机、接口内部 Pop 或修改元素后未调用 Fix。本文按不变量和 API 职责给出排查与修复方法。221 收藏 -
Go 导出 CSV 时,Writer.UseCRLF 决定记录行尾是否使用回车加换行。本文从表格软件兼容、字段引用、Flush 与字节检查几个环节说明如何稳定落地。221 收藏 -
Go 的 http.ServeContent 不会替你决定 Cache-Control;应在调用前设置缓存策略,并配合 modtime 或 ETag 处理条件请求。本文用一个文件接口讲清响应头的职责、设置时机与常见边界。219 收藏 -
Go time.Ticker.Stop 只停止后续 tick,不会关闭 ticker.C。本文解释通道不结束的原因,并用 done channel 与 context.Context 设计可退出的消费循环。218 收藏 -
Go 1.22 及以上版本可以在 http.ServeMux 模式中同时声明请求方法和路径,本文用用户资源路由说明 GET、HEAD、POST、DELETE、PathValue、405 和 Allow 的匹配边界。217 收藏 -
用 Go io.MultiWriter 将同一份输入同时写入文件和 SHA-256 摘要,理解顺序写入、短写、错误中断与临时文件提交,避免文件和校验值不一致。215 收藏 -
Golang · Go教程 | 3天前 | 文件读取 · Go教程 · Go csv.Reader Comment Go CSV 跳过注释行 encoding/csv 注释字符 csv.Reader 前导空白
Go 的 csv.Reader 可以通过 Comment 跳过以指定字符开头的整行,但前导空白会改变判定结果。本文用原创示例讲清配置方式、字段边界、错误处理与不规则 CSV 的选择策略。215 收藏 -
讲清 Go math/bits.Add64 的输入进位、sum 与 carryOut 返回值,以及多字长加法中从低位向高位传递进位的正确写法215 收藏