Go语言技术文章
-
Golang · Go教程 | 6天前 | 标准库 · JSON · 错误处理 · go · 调试 · Go errors.As encoding/json/v2 SemanticError JSONPointer
Go encoding/json/v2 解码失败时,SemanticError 会携带 ByteOffset、JSONPointer 和 GoType 等上下文。本文用嵌套配置示例说明如何提取这些字段、转换行列位置,并区分语法错误、语义错误与流式读取错误。477 收藏 -
本文用 Go net/http 演示 Cookie.Partitioned 的设置方式,说明它与 Secure、SameSite=None、Path 的关系,以及 Go 版本兼容和响应头排查边界。477 收藏 -
Go debug.SetMemoryLimit 可以给 runtime 设置按字节计算的软内存目标。本文按值班手册说明适用环境、容器余量、运行时指标、持续 GC 判断和回滚方式。477 收藏 -
Go 的 httputil.ReverseProxy.Rewrite 适合把入站请求改造成可控的出站请求。本文从一个小型反向代理开始,讲清 SetURL、Host、X-Forwarded-*、查询参数和 Director 迁移时最容易忽略的边界。476 收藏 -
Go 1.23 的 slices.Repeat 可以按次数生成连续切片结果,本文说明正数、零次、空输入、nil 语义、负数和大规模分配边界。476 收藏 -
Go math/big.Int.Append 可把数字文本追加到字节切片。本文通过记录接口说明返回值接收、缓冲区复用、结果复制及参数错误处理。476 收藏 -
shopspring/decimal 的 MarshalJSONWithoutQuotes 是包级全局开关,开启后所有 Decimal 的 JSON 输出都会从字符串变成数字。本文说明它的影响范围、并发修改风险,以及如何用字段级 MarshalJSON 控制单个接口。476 收藏 -
oggvorbis的Length和Position以采样帧计数,Read返回值则是交错float32元素数量。本文给出多声道单位换算、进度快照示例,以及未知长度、缓冲区和定位的边界处理。476 收藏 -
本文以对象移动为例,说明 Go rtreego 为什么不能直接修改 Bounds,并给出 Delete、更新边界、Insert 的维护顺序,以及没有原对象指针时使用 DeleteWithComparator 的方法。476 收藏 -
go/types.Hasher 面向源码类型与 types.Identical,reflect.Type 面向运行时类型表示。本文解释两者为什么不能直接比较哈希值,以及源码分析缓存和运行时缓存分别应该怎样选键。475 收藏 -
Go 的 golang.org/x/text/secure/precis 提供 Nickname profile,适合对国际化昵称做空格映射、NFKC 归一化和等价比较。本文区分 String、Compare、CompareKey 的用途,并给出查重与错误处理写法。475 收藏 -
Go Zerolog 自带 level 字段,但接入统一日志平台时,业务常常还需要 severity 等固定字段。本文从字段不一致的排查场景出发,说明如何用 Hook.Run 读取 zerolog.Level,统一补充 severity,处理 NoLevel、全局 logger、局部 logger 和字段覆盖边界。475 收藏 -
Go Decimal 的 DivRound 可以在单次除法调用中指定小数位数。本文用字符串构造 Decimal,说明 precision、正负数舍入、负精度和 StringFixed 展示之间的区别。475 收藏 -
Go jsontext.Decoder.PeekKind 可以查看下一个 JSON token 的类型而不推进读取偏移。本文说明如何根据 Kind 选择 ReadToken、ReadValue 或 SkipValue,并区分 KindInvalid、io.EOF 与对象数组结束标记。474 收藏 -
用MaxBytesReader限制Go HTTP请求体的实际读取字节数,识别MaxBytesError并返回413,说明完整读取、部分数据丢弃、Content-Length和JSON解析边界。474 收藏