Go问答技术文章
-
bufio.Writer.Available 返回内部缓冲区尚未使用的字节数。本文区分 Size、Buffered、Available 和 Flush,说明写入前后如何判断剩余空间、为什么大写入不等于必然失败,以及 AvailableBuffer 的使用边界。194 收藏 -
Go 的 net.IP.IsLoopback 用于判断 IP 是否属于回环地址。本文从 net.ParseIP 开始,说明 127.0.0.0/8、::1、无效输入、未指定地址与私有地址的区别,并给出可复用的判断代码与测试边界。194 收藏 -
说明Badger迭代器持有的底层引用、预取任务与活动计数,区分Close和事务结束,给出提前返回、循环扫描的清理写法及内存排查注意事项。193 收藏 -
Go HTTP/2 并发升高后请求固定批次排队,通常要先区分每连接流上限、客户端跨连接策略和后端处理变慢。本文说明如何读取证据,并用 net/http 的 HTTP2 配置修复对应边界。193 收藏 -
Go 临时文件泄漏要区分句柄未关闭与路径未清理。本文从批处理场景拆解 defer 作用域、文件所有权与错误回传,给出单任务关闭和删除的完整写法。193 收藏 -
用来源选择小命令说明 Cobra MarkFlagsOneRequired 的至少一个语义,组合互斥约束实现恰好一个,并区分 Changed、默认值、空路径和显式 false 的处理。193 收藏 -
Go jsonschema/v5 的 schema 没有 $schema 时,会使用 Compiler.Draft 指定的草案,未设置时默认采用当前支持的最新草案。本文用代码和迁移清单说明怎样固定 Draft7、Draft2020,避免项目升级后校验语义漂移。193 收藏 -
Go 的 snowflake.ID 进入 JavaScript 时,真正危险的不是 ID 生成,而是把 64 位标识当成 JSON 数字交给 Number。本文解释默认 JSON 行为、2^53-1 安全边界,以及字符串和 BigInt 的稳妥接口方案。193 收藏 -
Go ServeMux 优先级取决于方法与路径共同限定的匹配集合。用库存路由示例解释严格子集、GET 与 HEAD、固定段与通配符,以及交叉模式为何注册时冲突,并说明兜底路由的取舍。193 收藏 -
Golang · Go问答 | 4星期前 | 反射 · panic · go · 类型转换 · Go strconv reflect.Value.Convert CanConvert ConvertibleTo
reflect.Value.Convert 只执行 Go 允许的类型转换,不负责把字符串解析成数字。本文说明 CanConvert 与 ConvertibleTo 的使用边界、strconv 解析文本的方法,以及 slice 转 array pointer 时必须补充的长度检查。192 收藏 -
Go 拉取模块失败时,先检查 go.mod 的 module 声明是否与仓库根路径、包导入路径和 /v2 主版本规则一致,再决定改 module、改 import 还是使用 replace。192 收藏 -
Go crypto/ecdh.NewPublicKey 会按指定曲线校验公钥字节并返回 PublicKey。本文说明 NIST 曲线与 X25519 的编码边界、解析错误处理,以及如何在 ECDH 前保证本地私钥和对端公钥使用同一条曲线。192 收藏 -
go/types 的 TypeAndValue 同时保存表达式类型与常量值,但 IsType 和 IsValue 判断的是不同语义。本文结合常量、变量、nil、类型转换和内建函数标识符,说明静态分析时怎样组合这些方法。192 收藏 -
Go encoding/hex 的 DecodeString 按两个十六进制字符组成一个字节,输入为奇数长度时会返回 ErrLength。本文结合入口校验、错误区分和协议选择,说明怎样处理半字节输入。191 收藏 -
Go 泛型里的类型参数不是运行时接口值,直接写 v.(string) 会失败。本文用最小复现解释类型约束、动态类型和 any(v).(T) 的区别,并给出安全的类型分支写法。191 收藏