Go语言技术文章
-
LDAP连接失败首要排查DNS解析,确认域名可达或改用IP;Docker需用host.docker.internal或宿主机IP;自签名LDAPS需跳过证书验证;错误码49多因DN格式不符AD或OpenLDAP规范;Search为空应检查baseDN、filter转义及权限;务必手动设置conn超时避免卡死。489 收藏 -
JSON字段为null时,string类型字段解码后是零值"";需区分null与空字符串时必须用*string,解码后null→nil、""→指向空字符串的指针,取值前须判空防panic。488 收藏 -
使用互斥锁或通道控制并发文件读写,避免竞态条件;通过errors.Is分类处理错误,确保数据安全与程序稳定。488 收藏 -
值类型传参复制数据,函数内修改不影响原值;指针类型传参传递地址,可修改原始变量。例如,int值传递不改变原值,而int通过x=100可更新原变量。结构体较大时,指针传递避免复制开销并支持字段修改,如Person结构体使用指针参数提升效率与可变性。选择依据为是否需修改原值及数据大小,注意避免指针滥用导致意外修改。488 收藏 -
TCP长连接不应加应用层重传,因内核已实现完整可靠传输机制;盲目重传会导致重复、错序和状态不一致,仅在协议要求“至少一次送达”且服务端幂等时才可引入。488 收藏 -
<p>Go中匿名函数需赋值给变量或立即执行,语法为fn:=func(xint)int{returnx*2}或func(){fmt.Println("hello")}(),支持闭包但需警惕循环中捕获迭代变量的陷阱。</p>488 收藏 -
结合 EXPLAIN、慢查询、DBStats 和事务边界排查 Go 服务数据库瓶颈。488 收藏 -
Go 的 POST 请求第一次失败后重试,服务端却读到空 Body,通常不是服务端丢数据,而是请求体只被消费了一次。本文用 bytes.Reader、GetBody 和两次请求日志拆开这个问题,给出可验证的重试写法与边界。488 收藏 -
Go 1.21 之后,工具链版本不只由机器上的 go 决定。用 go.mod、GOTOOLCHAIN 和 CI 矩阵配合,能把自动升级、固定版本和失败回退边界讲清楚。488 收藏 -
govet和staticcheck是互补工具:前者是官方轻量级检查器,捕获语言层面常见错误;后者是社区增强型分析器,覆盖逻辑缺陷和风格问题。487 收藏 -
以大批量订单导出为例,介绍 Go 如何通过分段文件、固定内存排序、k 路归并和断点清单,把一次性组装结果改造成可恢复的流式导出流程。487 收藏 -
本文详解如何在Go中将JSON数据准确解析为分层结构体,重点解决因字段可见性、类型定义或解码参数错误导致的空数组问题,并提供可运行示例与最佳实践。本文详解如何在Go中将JSON数据准确解析为分层结构体,重点解决因字段可见性、类型定义或解码参数错误导致的空数组问题,并提供可运行示例与最佳实践。在Go语言中,将JSON字符串反序列化为结构体是常见操作,但初学者常因结构体字段可见性、嵌套定义或json.Unmarshal调用方式不当,导致解析失败(如Gatewa486 收藏 -
Golang · Go问答 | 1个月前 | 标准库 · 文件读取 · io.Reader · Go问答 · io.EOF · Go read io.Reader io.EOF Go问答 n err 读取循环
回答 Go io.Reader 读取时为什么要先处理 n 再判断 err,解释 n>0 且 err==io.EOF 的边界、错误写法为什么会丢最后一段,并给出可复用读取循环和排查清单。486 收藏 -
Go 泛型函数接收 map 的 key 时,comparable 约束看似简单,却会牵涉接口值、切片、map 和运行时 panic 边界。本文用可编译示例拆解约束选择,并给出从 any 迁移到类型参数的检查清单。486 收藏 -
runtime.SetGCPercent()不触发GC,而是动态修改GOGC阈值以影响后续自动GC决策;设为0极易引发调度风暴,-1完全禁用GC(仅调试),返回旧值建议保存并恢复;运行时设置优先级高于启动时GOGC环境变量。485 收藏