Go语言技术文章
-
Go 按指定时区查询某一天,需要用 time.Date 构造当天与次日的日期边界。本文结合日期筛选输入、完整 Go 示例和左闭右开判断,说明时区显示、夏令时、无效日期与重复午夜的适用限制。105 收藏 -
Go net/url.URL 的 Opaque 用于表示 scheme:opaque 形式的不透明数据。本文从字段关系、String 序列化和 RequestURI 输出说明它与 Host、Path 的边界。280 收藏 -
Go 的 time.Time 既能表示墙上时钟,也可能携带进程内单调时钟。本文用一组最小写法说明 Before、After、Equal、Compare、Sub 的分工,以及序列化、时区转换、== 比较和机器休眠时的边界。340 收藏 -
Go 的 url.URL 中,Host 保留主机与可选端口,Hostname() 返回不带端口的主机名。本文用域名、显式端口、相对路径和 IPv6 说明两者的选择边界。156 收藏 -
Golang · Go教程 | 2天前 | Go教程 · net/http · Go net/http HTTP连接 ResponseWriter http.ResponseController Hijack
Go 处理器需要接管底层连接时,可以用 http.ResponseController.Hijack 统一读取 ResponseWriter 的能力。本文说明最小调用方式、HTTP/2 与包装器边界,以及成功接管后的缓冲区和连接关闭责任。202 收藏 -
用 Go http.ResponseController 检测 Flush 能力,区分 http.ErrNotSupported、真实传输错误和代理缓冲边界,让包装后的 ResponseWriter 在不支持实时刷新时平滑降级。246 收藏 -
用 Go regexp.Regexp 的 ExpandString 配合命名捕获组和 SubmatchIndex,把正则匹配结果按模板顺序展开到可复用的 dst 缓冲区,并说明变量边界、未匹配组与字面量美元符号的处理。387 收藏 -
net/http ServeMux 没有公开的路由冲突比较函数,但 Handle 注册时会自动检查。本文用临时 ServeMux 把冲突或非法模式转成可处理的错误,并说明哪些模式可以共存、哪些判断不该依赖 panic 文本。117 收藏 -
Go slog 的 Handler 会过滤未启用的日志级别,但函数参数已经提前求值。本文用 logger.Enabled 在昂贵字段构造前短路,再比较格式化辅助函数与 LogValuer 的延迟计算边界。324 收藏 -
Go 1.22 起,net/http ServeMux 支持 {id} 与 {path...} 通配符。本文说明如何用 Request.PathValue 读取路径值,并梳理解码、冲突与版本兼容边界。282 收藏 -
Go JSON v2 自定义编码器按类型而非字段名匹配。以独立字段类型、MarshalToFunc 与 WithMarshalers 为例,解释调用范围、字符串编码、递归和错误处理,并明确 Go 1.25 实验接口的使用前提。207 收藏 -
encoding/json v2 的 omitzero 按 Go 零值或 IsZero 方法省略字段。本文对比 omitempty 在 nil 与空容器上的差异,并说明统一选项与反序列化边界。203 收藏 -
Go 1.26 新增 crypto/hpke 包后,可以用 KEM、KDF 和 AEAD 组合一次混合公钥加密。本文从密钥生成到 Seal/Open 闭环,说明封装信息、info、AAD 和状态上下文的关系。161 收藏 -
Golang · Go问答 | 2天前 | CGO · 内存管理 · Go问答 · 排错 · Go Go指针 CGO runtime/cgo.Handle C指针 runtime.Pinner cgocheck
Go cgo 指针检查的关键不是把 unsafe.Pointer 换成别的类型,而是确认内存归属、内部是否含 Go 指针以及 C 保存地址的时长。本文对比临时借用、C 内存复制、runtime/cgo.Handle 和 runtime.Pinner 的适用边界。392 收藏 -
围绕 Go http.Transport 的 HTTP 代理 CONNECT 握手,说明固定请求头与按目标动态请求头的配置边界,并整理旧代码迁移和回归检查清单。175 收藏