Go语言技术文章
-
用 Go 泛型写切片函数时,S ~[]E 可以兼容原始切片、类型别名和底层类型相同的自定义切片。本文用一个保留返回类型的示例讲清约束、推导和边界。384 收藏 -
讲清 Go io/fs.WalkDir 命中目标后如何用 fs.SkipAll 正常结束全部遍历,并对比 fs.SkipDir、普通 error 与旧版本兼容写法。384 收藏 -
解释 Go SectionReader.ReadAt 为什么会同时返回有效数据和 io.EOF,拆解区间边界、偏移换算与 ReaderAt 契约,并给出避免丢失尾部字节的正确判断顺序。384 收藏 -
reflect.Value.Comparable 会按动态类型判断值能否安全比较。本文讲清它与 IsValid、CanInterface、Interface、Equal 的正确组合顺序。384 收藏 -
Golang · Go问答 | 8小时前 | go · TLS · 网络安全 · VerifyConnection Go InsecureSkipVerify x509.Verify TLS证书校验 证书固定
Go 中 InsecureSkipVerify=true 会跳过默认的证书链和主机名校验。若业务必须接管验证,应在 VerifyConnection 中用自定义 RootCAs、中间证书池和 DNSName 调用 x509.Verify,并可追加 SPKI 指纹约束。384 收藏 -
Go 1.27 为 go/types 增加 Hasher 与 HasherIgnoreTags,用于为 Type 提供与 Identical 或 IdenticalIgnoreTags 一致的哈希关系。本文从类型分析缓存键冲突场景出发,说明 Hash、Equal、maphash.Hash 和结构体标签的边界。383 收藏 -
讲清 Go http.Transport 如何使用 ProxyFromEnvironment 读取 HTTP_PROXY、HTTPS_PROXY 和 NO_PROXY,并排查内网域名、localhost、回环地址与端口匹配边界。383 收藏 -
Go html/template 会按 HTML、属性和 URL 上下文自动转义用户值。本文用固定属性模板说明 title、data-*、href 的安全写法,解释危险协议、事件属性和 template.HTML 的信任边界。383 收藏 -
Scanner.Buffer 并不是把 token 变成无限大。Go 扫描长行时还要考虑 max、初始 cap、换行符空间、Buffer 调用时机和自定义 Split,本文给出排查顺序与 Reader 替代方案。383 收藏 -
Golang · Go问答 | 4天前 | channel · goroutine · pprof · Go问答 · context pprof 有界队列 go goroutine泄漏 无界channel
Go 原生 channel 容量固定,所谓无界 channel 多由中转 goroutine 与无限 slice 构成。本文用 goroutine profile 定位阻塞堆栈,并迁移到有界队列、context 取消与 WaitGroup 退出等待。383 收藏 -
介绍 Go 标准库 debug/elf.File.DynString 的正确用法:读取 DT_NEEDED、DT_SONAME、DT_RPATH、DT_RUNPATH,理解动态段与字符串表关系,并区分空结果、非法标签、损坏 ELF 和不可信输入。383 收藏 -
Go HTTP 中间件看起来只是函数嵌套,但鉴权、限流、日志和业务处理的顺序会直接影响安全性、指标口径与资源消耗。本文用一条订单接口链路说明中间件的组合方式、顺序取舍和可验证边界。382 收藏 -
Go 回调接口是否都应该返回 error?从同步确认、异步投递和后台任务三个场景拆解接口设计,给出可落地的签名、错误归属和判断清单。382 收藏 -
Golang · Go问答 | 1个月前 | 标准库 · go · 正则表达式 · 性能 · Go MustCompile regexp.MatchString regexp.Compile 并发复用
Go 的 regexp.MatchString 适合快速判断,但把 regexp.Compile 放进热循环会反复解析模式。本文对比一次编译、MustCompile、动态模式和并发复用的边界,给出可运行的性能与输入验收方法。382 收藏 -
从配置校验场景出发,拆开 nil 接口、typed nil 和 reflect.Value.IsZero 的差异,并用可运行的 Go 示例给出安全的判断边界。382 收藏