Go教程技术文章
-
Go json.Decoder.Token 会按顺序读取 JSON 流中的分隔符、键和值,并在自然结束时返回 io.EOF。本文说明返回类型、嵌套层级、Token 与 Decode 的配合方式,以及截断输入和非法结构的处理边界。427 收藏 -
Go net.IP.IsPrivate 可以按 RFC 1918 和 RFC 4193 判断 IPv4、IPv6 私有地址,但它不是安全属性。本文用 net.ParseIP、对照表和边界说明讲清输入、返回值与使用位置。343 收藏 -
strconv.UnquoteChar 每次只解析输入开头的一个字符或转义序列,同时返回 rune、multibyte、剩余 tail 和错误。本文用字符解析器的场景说明 quote 参数、转义家族、尾串循环与错误边界。177 收藏 -
Go 解码动态 JSON 时,默认数字会进入 float64,较大的整数可能失去精度。本文说明如何在 Decode 前调用 json.Decoder.UseNumber,何时使用 json.Number.String、Int64 和 Float64,以及结构体字段与动态字段的边界。133 收藏 -
Go http.Flusher 让 Handler 可以把已经写入的响应数据主动推向客户端,但当前 ResponseWriter 不一定具备该能力,代理也可能继续缓冲。本文给出安全的类型断言、分块写入和边界排查写法。147 收藏 -
Go http.Request.ParseForm 会把 URL 查询参数写入 r.Form,并在符合条件的 POST、PUT、PATCH 表单请求中同时填充 r.PostForm 与 r.Form。本文说明两个集合的来源、同名键优先级、Content-Type 边界、重复值读取和 FormValue 的错误处理差异。280 收藏 -
Go 的 http.Request.Trailer 不是普通请求头的即时副本。本文从读取时序出发,说明服务端为什么要等 Body 返回 EOF 后再取尾部字段,并给出声明字段、读取请求体和处理空值的实用写法。375 收藏 -
Go 的 math/bits.Rem64 用 hi、lo 两个 uint64 表示双字无符号被除数并返回余数。本文说明参数含义、零除数边界,以及 Rem64 与 Div64 在商溢出处理上的区别。417 收藏 -
Go path.Dir 适合处理 URL、对象存储键等正斜杠分隔路径。本文说明普通路径、末尾斜杠、根路径和空路径的返回边界,并区分 path.Dir 与 filepath.Dir 的生产使用场景。344 收藏 -
Go netip.Prefix.IsValid 同时判断地址是否已初始化、前缀位数是否符合 IPv4 或 IPv6 范围。本文用一个小工具区分零 Prefix、0.0.0.0/0、非法位数和有效但未掩码的前缀。371 收藏 -
Go 的 path.Clean 适合规范化 URL 这类正斜杠路径:它按词法规则合并斜杠、移除点段并处理 ..,但不检查文件是否存在,也不替代权限校验。168 收藏 -
Go filepath.Abs 以当前工作目录为基准转换相对路径。本文用配置读取示例说明错误处理、固定基准目录,以及文件存在性、符号链接和跨平台路径的职责边界。297 收藏 -
Go 中不要用文件后缀猜测打开对象的类型。本文用 os.File.Stat 获取 FileInfo,再通过 Mode 的 IsDir 和 IsRegular 判断目录、普通文件及其它类型,同时处理 Stat 错误和文件句柄关闭。411 收藏 -
本文围绕 Go embed.FS 讲清静态资源目录、//go:embed 包级声明、隐藏文件规则,以及如何通过 http.FS、StripPrefix 和 FileServer 接入 HTTP 服务。177 收藏 -
Go fs.Sub 把一个 fs.FS 映射为指定子目录的文件系统视图。本文用 os.DirFS 和嵌入式文件系统说明相对路径、嵌套 Sub、无效路径与不存在目录的边界,并提醒它不是 chroot 级安全隔离。202 收藏