Go问答技术文章
-
Go RawURLEncoding 不接受等号,需按发送方选择 URLEncoding 或无填充配置。本文给出兼容函数、预期样本与基准方法,说明错误处理和适用边界。435 收藏 -
Go 分块 NFC 不能把任意片段独立正规化后拼接。本文比较整体、流式与追加接口,说明组合字符接缝、Writer 收尾及安全边界的选择方法。435 收藏 -
Go 服务里用 time.Ticker 做周期任务时,真正容易出问题的不是 tick 间隔,而是任务退出后计时器、goroutine 和下游资源没有一起收尾。本文用可复现的长期任务场景拆解 Stop 的边界、退出信号和复查方法。434 收藏 -
Go 1.25 新增的 sync.WaitGroup.Go 把 goroutine 启动与计数绑定起来。本文用批量任务示例讲清启动时序、Wait 边界、panic 约束和异常收口方式。434 收藏 -
Go 的 int 字段不能直接接收 JSON 字符串中的数字。固定返回 "123" 时使用 json:",string",同时兼容数字和字符串时用自定义 UnmarshalJSON 配合 strconv.ParseInt,并明确空值、小数和溢出策略。434 收藏 -
Go 的 panic 沿当前 goroutine 调用栈展开,recover 只有在同一 goroutine 的 deferred 函数中直接调用才会生效。本文用原创示例说明错误位置、保护函数和 channel 传递边界。434 收藏 -
Go 里把 WaitGroup.Add 写进 goroutine,会让 Wait 有机会在计数建立前先返回。本文用时序拆解根因,给出 Add、Done、Wait 的安全写法,并说明嵌套任务和 WaitGroup.Go 的边界。434 收藏 -
Go sync.Once.Do 内部函数发生 panic 后不会自动重试;本文用调用计数、recover 和对比表说明 Once、OnceFunc 与显式重试状态机的边界。434 收藏 -
Go encoding/xml 解码 XML 时,前缀只是文档别名。本文用 xml.Name.Space 和 Local 说明如何按命名空间 URI 稳定判断元素,并比较 Token 级解析与结构体标签的适用边界。434 收藏 -
本文用一个只依赖标准库的 Go 小工具说明 pem.Block.Headers 如何写入自定义头字段,解释 pem.Encode 的稳定输出、错误处理、Decode 回读与测试夹具设计。434 收藏 -
解释 Go io.MultiWriter 按顺序写入多个 Writer 的行为,区分错误、短写入和部分结果,并给出失败后的重试与补偿判断方法。434 收藏 -
Go ECDSA Sign 摘要长度报错通常源于原始字节与文本编码混用,或哈希选项不匹配。本文比较三个签名入口,给出 SHA-256 签名验签示例及参数排错表。434 收藏 -
解释 go-pretty Pager 的 PageSize 与实际数据行数、渲染行数和页数的区别,给出展示分页与业务分页的选择方法。434 收藏 -
Go http.Transport 的 WriteBufferSize 控制 Transport 写入网络连接时使用的缓冲区。本文说明零值默认行为、共享 Transport 的配置方式、按连接评估内存代价,以及哪些问题不该靠调大写缓冲解决。434 收藏 -
crypto/subtle.ConstantTimeSelect 只接受 0 或 1,并在两个候选整数之间做固定时间选择。本文用 ConstantTimeEq 生成选择值,解释它适合保护什么、不能替代哪些安全边界,以及如何用测试核对结果。433 收藏