Go教程技术文章
-
使用 multipart.Reader、io.Pipe 和 multipart.Writer,Go 可以把上传文件按段转发到上游,不调用 ReadForm、不创建临时文件,并正确处理边界、背压、取消和错误传播。373 收藏 -
Go os.Getenv 在变量未设置和已设置为空字符串时都会返回空字符串;os.LookupEnv 通过第二个布尔值保留存在性信息。本文用配置流水线说明两者的判断边界、默认值策略和错误处理写法。373 收藏 -
区分 Go ByteOrder 与 AppendByteOrder,展示定长整数追加、字节序选择和返回切片的正确用法,说明容量及共享数组的边界。373 收藏 -
比较 Go 文件错误直接返回、文本转换、%w 包装与 errors.Join,给出保留写入和关闭错误的示例,并说明 errors.Is、errors.As 及资源清理的使用边界。373 收藏 -
用 net/http/httptrace 把一次 Go HTTP 请求拆成 DNS、连接、TLS、写请求和首字节等阶段,判断慢点究竟发生在哪里。372 收藏 -
Go io.MultiWriter 会按顺序把同一份数据写入多个 Writer,遇到首个错误或短写就停止,不能把多目标写入当成事务;本文用示例说明如何识别部分成功并设计补偿策略。372 收藏 -
Go time.ParseInLocation 适合解析不带时区的业务时间字符串。本文对比 time.Parse 的 UTC 默认行为,说明如何加载 IANA 时区、统一存储 UTC,并处理偏移、缩写和夏令时边界。372 收藏 -
Go json.Decoder 默认忽略结构体未知字段,适合灰度客户端向前兼容;本文用示例说明类型错误、DisallowUnknownFields 严格入口和分阶段收紧清单。372 收藏 -
讲清 Go sync.Pool 对象归还前如何清理字节切片、map 和引用字段,避免敏感内容被下一次 Get 读到,并说明清零与安全擦除的边界。372 收藏 -
Go 的 zip.File.OpenRaw 返回 ZIP 条目未经解压的压缩字节流。本文给出流式读取、长度核对、Store 与 Deflate 区别,并比较 Open、Writer.Copy 和 DataOffset 的选择边界。372 收藏 -
Go 基准测试的计时控制实际位于 testing.B。本文用 B.Loop、StopTimer、StartTimer 和 ResetTimer 排除输入准备成本,并说明并行基准的限制。372 收藏 -
用 go.work 和 use 组织多个 Go 模块的本地联调,并通过 GOWORK=off 完成发布前的独立校验。372 收藏 -
Go ResponseController 统一刷新、读写期限等可选能力的调用入口。通过中间件 Unwrap、ErrNotSupported 分流和有限响应示例,说明接口边界、失败处理及改造前后的测量方法。372 收藏 -
Go bytes.Reader 读取一部分内容后,可以用 Seek 回到开头、已保存的位置或相对偏移。本文用 io.SeekStart、io.SeekCurrent 和 io.SeekEnd 说明重复读取写法,并处理负位置、越过末尾和非法 whence。372 收藏 -
Go multipart.Reader.NextPart 适合边读取边处理 multipart 请求体。本文说明如何解析 boundary、逐段区分普通字段和文件字段、正确处理 io.EOF,并用流式复制与文件名边界避免大文件一次性进入内存。372 收藏