Go教程技术文章
-
Golang · Go教程 | 2个月前 | 标准库 · JSON · go · 后端开发 · 版本迁移 · JSON Go 1.27 encoding/json/v2 encoding/json/jsontext GOEXPERIMENT
Go 1.27 带来 encoding/json/v2 与 encoding/json/jsontext。本文从旧 encoding/json 兼容边界开始,演示 v2 的选项配置、重复字段和非法 UTF-8 的回归检查,并给出灰度试用与 GOEXPERIMENT=nojsonv2 回退清单。195 收藏 -
Golang · Go教程 | 2个月前 | 字符串处理 · Go教程 · 输入校验 · 字符串校验 unicode/utf8 DecodeRuneInString utf8.ValidString 非法UTF-8
Go string 可能保存非法字节,整段校验用 utf8.ValidString,需要定位时检查 DecodeRuneInString 返回的 RuneError 与 size==1,允许继续处理则用 strings.ToValidUTF8,并记录是否发生清洗。195 收藏 -
Go embed.FS 的读取路径相对当前包目录,并统一使用正斜杠。本文用直接读取与 fs.Sub 两种写法说明如何处理目录前缀、跨平台分隔符和常见路径错误。195 收藏 -
Go fuzz 测试发现崩溃输入后,如何利用 testdata/fuzz 语料目录在普通 go test 中稳定回归。195 收藏 -
Go 服务不必在每次请求中重复调用 time.LoadLocation。本文用 sync.Once 缓存可共享的 *time.Location,并说明 IANA 时区、UTC、Local、错误处理以及并发首次初始化的边界。195 收藏 -
Golang · Go教程 | 3星期前 | Context · Go教程 · net/http · Go context.Context ErrHandlerTimeout http.TimeoutHandler HTTP 处理器超时
Go 标准库的 http.TimeoutHandler 可以为单个 HTTP 处理器设置时间边界,超时向客户端返回 503。本文说明最小包装方式、请求上下文取消、响应缓冲,以及它与 Server 超时配置和流式处理的边界。195 收藏 -
Go os.File.Chmod 用 FileMode 更新已有文件的权限位。本文从打开与创建的边界出发,说明 0o600、0o640 的写法、错误处理、修改后读取和 Unix、Windows 差异。195 收藏 -
go/doc/comment.Parser 接收已经去除 // 或 /* */ 标记的文档注释文本,返回可遍历的 *comment.Doc。本文用一个小型源码分析场景说明如何读取段落、标题和链接,并按需要交给 Printer 输出。195 收藏 -
比较Go database/sql结果集的自动关闭、defer和显式关闭,区分QueryContext、Scan、Err、Close的错误入口,用完整读取函数处理早退、迭代失败和关闭错误。195 收藏 -
filepath.Match 不是普通字符串匹配:星号和问号默认不能跨越路径分隔符,模式还必须覆盖完整名称。本文结合文件筛选自动化,解释分隔符、转义、跨平台写法和 ErrBadPattern 的处理。195 收藏 -
用 Go 的 crypto/rand.Int 生成 [0,n) 范围内均匀分布的随机下标,说明 big.Int 上界、拒绝采样、空切片和错误处理。194 收藏 -
讲清 Go embed.FS 读取请求资源时 fs.ValidPath 的斜杠路径规则、反斜杠边界,以及如何区分非法路径和资源不存在。194 收藏 -
Go bytes.Buffer.ReadFrom 适合把完整 io.Reader 数据接入内存缓冲。本文说明 EOF、ReadFrom 返回值、Grow、io.LimitReader、ErrTooLarge 与 Bytes 切片所有权的边界。194 收藏 -
用 Go constant.ToInt 判断编译期数值能否精确表示为整数,并进一步说明 constant.Int、constant.Unknown、Int64Val 与目标整数类型范围之间的区别。194 收藏 -
Go 的 http.NewResponseController 能统一调用刷新、截止时间、连接接管与全双工能力。本文用场景对比和完整示例讲清选择方法与边界。194 收藏