Go问答技术文章
-
Go tls.Config可以并发复用,但传给TLS函数后不得继续修改。本文说明只读快照、Clone浅复制、可变切片隔离和证书配置热切换的安全组织方式。214 收藏 -
Go 1.21 引入的 clear 可以把切片元素重置为类型零值,尤其适合切断指针切片和含引用字段的对象链。本文从数组范围、别名切片和旧工具链兼容三个边界说明它怎么用、哪里容易清错。213 收藏 -
Go 1.23 引入的 reflect.Value.Seq2 可以把数组、map、切片或字符串暴露成键值迭代器。本文用可运行示例说明 Value 回调、Interface 类型断言、yield 返回 false 提前停止,以及不支持 Kind 时的边界。213 收藏 -
Go 切片只是底层数组的一段描述符,直接返回大缓冲区中的小片段时,指针仍可能让整个数组保持存活。本文用切片长度、容量和复制副本说明保留原因,并给出 make+copy、append 复制和指针元素清理的实用边界。213 收藏 -
GOPROXY=direct 只负责让 Go 直接访问版本控制系统,私有模块的认证仍要交给 Git 的 HTTPS 凭据助手或 SSH;本文用一条请求链路说明如何配置和排查。213 收藏 -
Go 截取子切片后修改元素会影响原切片,根因是两个切片共享底层数组。本文用 len、cap、三下标切片、append、slices.Clone 和 copy 说明如何判断并隔离这类修改。213 收藏 -
Go 的 json.Decoder.Decode 成功一次不代表整个输入已经结束。本文用第二次 Decode 检查 io.EOF,区分额外 JSON 值与损坏尾部,并给出日志、灰度和回滚做法。212 收藏 -
Go 的 http.Request.GetBody 不是所有请求都会自动生成,只有客户端 NewRequest 识别的标准 reader 才会填充。本文区分客户端与服务端边界,并给出自定义 Body 的安全重放写法。212 收藏 -
Go Scanner 默认只能缓冲有限大小的 token,遇到超长日志会返回 token too long。本文说明如何在 Scan 前正确设置 Scanner.Buffer,以及何时改用 bufio.Reader 分片读取。212 收藏 -
Go interface 存入零值结构体后为什么仍不等于 nil?关键在接口值同时携带动态类型和动态值。本文对比零值结构体、nil 指针和 nil interface,给出类型断言与反射判断的安全边界。212 收藏 -
Golang · Go问答 | 1个月前 | HTTP · go · 性能排查 · Go net/http 连接泄漏 ConnState StateNew StateActive StateClosed
Go 的 net/http.Server.ConnState 能把连接状态变化暴露出来。本文用 StateNew、StateActive、StateIdle 与 StateClosed 计数,区分正常长连接、慢请求和连接泄漏,并给出可运行的核对方法。211 收藏 -
Go pprof 的 alloc_space 看累计分配,inuse_space 看最近一次 GC 后仍存活的内存。同一调用栈排名相反并不矛盾,关键是先确认对象生命周期,再用两个视图交叉判断。211 收藏 -
解释 Go regexp.MustCompile 与 regexp.Compile 在配置加载中的边界:哪些规则适合启动即失败,哪些输入必须保留运行时错误,并给出可验证的代码写法。210 收藏 -
Go 1.23 的 range over function 如何停止生产方?本文用 iter.Seq、yield bool 和 iter.Pull 说明 break、return 后的停止合同与 defer stop 收尾方式。210 收藏 -
Go trace 页面打不开,先检查 trace.out 是否仍在写入,再确认 trace.Stop、文件 Close 和进程退出顺序,最后排除浏览器与旧格式兼容问题。210 收藏