Go教程技术文章
-
Go encoding/json 解码部分更新请求时,普通字段容易把缺失和显式 null 压成同一个零值。本文用 Optional[T] 保留 Present、Null、Value 三种状态,再用 map[string]json.RawMessage 处理动态字段,并说明对象复用与 omitempty 的边界。260 收藏 -
Golang · Go教程 | 18小时前 | 标准库 · time · 时区 · Go教程 · Go 本地时间 time.LoadLocation time.Parse time.ParseInLocation 时区解析
Go 的 time.Parse 对无时区字符串默认按 UTC 解释,而 time.ParseInLocation 可以把指定 Location 用作本地时间的解释位置。本文用最小示例比较两者差异,并说明 LoadLocation、输入协议和错误处理的边界。260 收藏 -
Go 标准库 flag 默认把一个参数当成一个值。本文用自定义 flag.Value 收集重复参数,说明切片初始化、空值校验、错误提示和最终读取的边界。259 收藏 -
Go encoding/csv 读取 CSV 时,应先消费并验证表头,再用 FieldsPerRecord 固定数据行列数。本文给出跳过表头、识别 ErrFieldCount 与 ParseError、在入库前完成结构校验的实现方法。259 收藏 -
用 Go strconv.ParseInt 按进制和位宽检查字符串整数,区分 ErrSyntax 与 ErrRange,再安全转换为 int32、int64 等业务类型。259 收藏 -
本文说明 Go encoding/base32 的 CorruptInputError 如何表示首个非法输入字节偏移,并用 errors.As、UTF-8 位置换算、上下文切片和 padding 配置完成可读诊断。259 收藏 -
Go 的 io/fs.FileMode 同时携带文件类型位和权限位。本文从 FileInfo、DirEntry、IsDir、IsRegular、Type、Perm 几个入口说明如何区分目录、普通文件与符号链接等特殊类型,并补上遍历时的错误处理边界。259 收藏 -
Go 用 collate.New(language.German) 创建德语文本排序器。通过完整示例说明语言标签、稳定排序与原切片保护,并解释比较等价、并发独占和配置记录的使用边界。259 收藏 -
Go iter.Pull2 的第三个返回值 valid 才表示当前 pair 是否有效,错误可以作为第二个值正常传递。本文用一个带错误值的 Seq2 示例说明自然结束、错误值和 stop 清理之间的区别。259 收藏 -
围绕 Go crypto/tls 的 tls.Config.NextProtos,说明 ALPN 协议清单、客户端与服务端配置、协商结果读取,以及在批处理连接中复用只读配置以减少重复分配的边界。259 收藏 -
通过 go mod vendor 生成 vendor 与 vendor/modules.txt,在断网构建机用 GOPROXY=off 和 -mod=vendor 完成 Go 项目的离线构建,并处理 go.mod 与 vendor 不一致问题。258 收藏 -
database/sql.QueryContext 返回的 Rows 可能仍占用驱动连接。本文用可复用的 Go 代码说明为什么要 Close、何时检查 Rows.Err,以及查询提前退出时如何避免连接池被拖住。258 收藏 -
Go bufio.Reader 的 ReadString 和 ReadBytes 都能按分隔符读取一行,但返回类型、数据转换和末尾 io.EOF 的处理不同。本文用示例说明两者怎么选。258 收藏 -
用 Go modules replace 在不改 import 路径的前提下临时指向本地模块,说明 require、go.mod、go list -m -json 与提交前清理之间的排查关系。258 收藏 -
Go 1.23 引入的 unique.Handle 可以规范化重复的可比较配置值。本文用配置键示例说明 Make、Handle 比较、Value 取值和句柄回收边界。258 收藏