Go问答技术文章
-
Go heap 修改优先级后顺序不变,通常与未调用 Fix、修改副本或使用旧索引有关。本文用任务队列说明位置表、Swap 与 Pop 的职责及并发边界。461 收藏 -
Go sort 出现顺序不稳定时,问题可能来自 Less 不满足严格弱序,也可能只是 sort.Slice 没有承诺相等元素保序。本文用多字段、浮点和稳定排序示例拆开这两个边界。120 收藏 -
Go 的 URLEncoding 和 RawURLEncoding 使用同一套 URL-safe 字母表,但一个保留等号填充、一个去掉填充,因此不能随意交叉解码。本文从错误现象、协议边界和历史数据兼容三个角度说明如何选择编码器。209 收藏 -
Go crypto/rand 生成的是随机字节,不是随机字符。本文解释直接转 string、十六进制和 Base64 后长度为何不同,并给出带错误处理的固定长度随机字符串写法。291 收藏 -
Go binary 的整数解码应遵循协议字节序,而不是本机端序。通过固定字节与八字节头部示例说明字段宽度、偏移和完整读取,区分短读与端序错误,并解释编码回环为何不等于协议互通。122 收藏 -
Go RawMessage 二次解析后字段为空,通常要从原始字节、外层 JSON 标签、目标结构体指针和类型匹配四处排查。本文给出动态载荷的定位清单与可复用写法。321 收藏 -
Go multipart 上传文件读到空内容,常见原因是字段名或 boundary 不匹配、请求体被提前消费、文件流已经位于 EOF。本文用 FormFile 与 MultipartReader 说明如何按证据定位并修复。156 收藏 -
Golang · Go问答 | 1星期前 | HTTP · go · Get · Post · 故障排查 · net/http · Microsoft Visual Studio cnwizards(c++程序开发包) net/http HTTP重定向 CheckRedirect Go Redirect POST变GET
Go Client 自动跟随重定向时,301、302、303 会让 POST 后续变成 GET,而 307、308 保留原方法和请求体。本文用服务端与 CheckRedirect 示例说明状态码选择、请求体重放和停止自动跟随的排查方法。286 收藏 -
Go Cookie 不被浏览器保存,通常不是 Cookie 结构体失效,而是响应头没有及时写出,或 Domain、Path、Secure、SameSite、MaxAge 等属性不符合当前请求环境。本文用最小 net/http 示例拆分接收、存储和发送三层排查。474 收藏 -
Go slog 的 JSON 时间格式取决于字段来源、时区与布局。通过 ReplaceAttr 将内置日志时间改为 UTC 固定毫秒字符串,并区分业务时间、分组字段、零值记录及采集端类型兼容。491 收藏 -
Go slog 不会自动把 context.Context 中的值写入日志。本文区分 Info 与 InfoContext、Logger.With 固定属性和自定义 Handler 读取上下文字段的边界,给出安全的排查与实现方式。470 收藏 -
Go CommandContext 默认只取消 Cmd 对应的直接进程,shell 派生的孙进程和仍持有 stdout/stderr 的 I/O 管道可能让 Wait 继续等待。本文解释取消边界、进程树与管道回收,并给出直接执行、进程组和 WaitDelay 的选择方法。448 收藏 -
Go 服务收不到 SIGTERM,通常不是信号本身失效,而是目标 PID、signal.Notify 注册、容器 PID 1 或退出清理边界出了问题。本文给出一套从进程到 supervisor 的排查顺序。198 收藏 -
Go FlagSet 的 ContinueOnError 不等于静默,SetOutput 才配置诊断去向。通过独立缓冲区示例说明如何捕获输出,区分自定义 Usage、全局集合、外层日志和帮助请求,避免重复打印或丢弃错误。348 收藏 -
Go filepath 会按照编译目标操作系统选择路径分隔符和绝对路径规则,因此 Join、Clean、IsAbs 等结果可能与开发机不同。本文区分本地文件系统路径和斜杠协议路径,并给出 path、ToSlash、FromSlash、Abs 与 Rel 的使用边界。420 收藏