Go问答技术文章
-
Go 1.27 把 go fix 中的 waitgroup analyzer 改名为 waitgroupgo。本文区分命令入口与分析器名称,说明如何用 go tool fix help 和 go fix -diff 确认参数,并判断哪些 WaitGroup 写法适合现代化、哪些场景需要人工复核。400 收藏 -
nil map 读取缺失键返回零值,写入却会 panic。以表单状态为例说明 nil 与空 map、写入方法初始化、函数返回新 map 以及嵌套 map 的责任边界。400 收藏 -
Go 1.27 的 jsontext.Decoder.ReadValue 在对象或数组结束标记处返回 SyntacticError,并不会推进读取状态。本文区分结束 Token、真正的 io.EOF 和语法错误,说明如何用 PeekKind 与 ReadToken 安全处理流式 JSON 边界。399 收藏 -
gofpdf 的 Cell 默认把当前位置移到右侧,MultiCell 输出多行后回到左边距并进入下一行。本文用坐标记录、CellFormat 和表格布局示例说明如何选择与排查。398 收藏 -
Go 1.27 的 encoding/json/v2 已移除实验期 format 标签选项。本文按标签参数形态、time.Time、time.Duration 和自定义类型说明迁移时应该怎么改。397 收藏 -
本文用 Go net/http 说明 Transport.CloseIdleConnections 只关闭 keep-alive 空闲连接,区分 Response.Body、活动连接和请求取消,并给出 Client、Transport 与连接池参数的排查方法。397 收藏 -
以Linux交叉构建为范围,区分目标架构与链接方式,介绍关闭cgo和保留目标C工具链两条路线,并说明动态加载器、共享库及运行镜像迁移条件。397 收藏 -
Go Decimal 无法恢复进入 float64 前已丢失的十进制尾数和输入格式。通过相邻长小数示例区分浮点往返表示与原始输入,并说明字符串、整数系数入口及舍入策略的适用边界。397 收藏 -
Go google/uuid 的 Validate 只返回格式判断结果,Parse 则解码得到 UUID 值。结合严格36位小写接口示例,区分兼容格式、规范化、零值策略、版本要求与资源权限。397 收藏 -
Go 反射删除 map 元素时,SetMapIndex 的 elem 要传 reflect.Value{};本文说明零 Value、类型可赋值和 nil map 的边界。396 收藏 -
filepath.Join 采用客户端目标系统的路径规则,不能自动代表 SFTP 远端命名空间。本文区分本地与远端路径,给出单文件名拼接示例,并说明 ToSlash、词法清理和服务端权限的边界。396 收藏 -
Go Zerolog 的 Info、Error 等方法只会创建待提交的 Event;本文说明为什么缺少 Msg 会没有输出,并给出 Msg、Msgf、Send 及等级、采样、writer 排查顺序。395 收藏 -
解释工作区模式下 go.work replace 覆盖成员模块 go.mod replace 的原因,演示如何确认 GOWORK、匹配规则和最终模块来源,并给出可回滚的修复方法。394 收藏 -
解释 Go Paho MQTT 的 WaitTimeout、Done 和 Error 如何协作,说明返回 false 只是等待超时而不是取消请求,并给出 WaitTokenTimeout 与业务取消的处理方式。393 收藏 -
Go 1.22 改变了 for 循环变量的创建方式,但循环外变量、旧模块和延迟回调仍可能共享同一个值。本文说明闭包捕获边界,并给出显式传值和当前值副本的稳妥写法。392 收藏