Go问答技术文章
-
Go cgo.Handle 用整数关联 Go 值,让 C 回传标识后由 Go 取值。同步双文件示例说明 NewHandle、Value、Delete 的职责,以及异步回调和重复释放的风险。321 收藏 -
Go gzip 解压出现校验错误时,优先检查压缩流是否完整收尾、读取是否到达 EOF,以及多成员流和网络截断边界。321 收藏 -
Go RawMessage 二次解析后字段为空,通常要从原始字节、外层 JSON 标签、目标结构体指针和类型匹配四处排查。本文给出动态载荷的定位清单与可复用写法。321 收藏 -
go-flags 的 optional 决定参数值能否省略,optional-value 决定裸参数出现时填入什么值。本文用三种命令行输入拆开两者与 default 的边界。321 收藏 -
Go 的 nil map 可以读取、计算长度和遍历,但不能直接写入。本文用一个小型索引示例拆开遍历、初始化和写入边界,说明 make 应该放在哪里,以及空输入时怎样保持行为一致。321 收藏 -
multipart.FileHeader.Size 是文件部件的大小元数据,读取长度还会受到当前游标、读取上限和错误处理影响。本文用 Go 示例拆开这几个数字的含义,并给出上传场景的排查与限制方式。320 收藏 -
说明 sonyflake 的时间、序列号和机器编号如何共同组成唯一 ID,解释默认私有 IP 低位的部署风险,并给出 MachineID 与 CheckMachineID 的启动检查思路。320 收藏 -
在 Go 中,for range 遍历结构体切片时,值变量通常是当前元素的一份复制品。直接修改 item.Name 只会改变这份副本,原切片不会变化。本文用排查清单拆开 range 的赋值语义,并给出索引修改、显式写回和指针切片三种写法。320 收藏 -
Go 普通 map 并发读写会触发数据竞争,严重时出现 fatal error。本文按访问边界说明原因,并比较 mutex、RWMutex、单协程所有权与 sync.Map 的适用场景。319 收藏 -
Go 的 os.MkdirAll 创建目录失败时,问题通常不在 0750 或 0777 本身,而在父目录搜索/写入权限、运行身份、只读挂载或 umask。本文按 PathError 定位受限环节,并给出更稳妥的修复顺序。319 收藏 -
说明go-diff的DiffTimeout为何同时影响搜索期限与half-match启发式,并通过比较示例区分文本重建、编辑量、可读性和调用耗时。319 收藏 -
Go gopacket 的 CaptureLength 是实际读入的字节数,Length 是原始报文长度。本文用 CaptureInfo、PacketMetadata 和 pcapgo Reader 说明两者的关系、截断判断与代码用法。319 收藏 -
Golang · Go问答 | 3星期前 | net/http · HTTP客户端 · Go问答 · Go net/http gzip Transport.DisableCompression Accept-Encoding 响应解压
Go 的 Transport.DisableCompression 只控制是否自动添加 Accept-Encoding: gzip;自动请求的 gzip 响应会被透明解压,而用户显式请求 gzip 时仍需自己处理压缩 Body。318 收藏 -
Go Reader 的字节分块不保证 UTF-8 字符边界。本文给出持续使用 bufio.Reader.ReadRune 的完整示例,区分半个编码、非法字节、合法 U+FFFD 与流末尾截断,并说明批量解码的状态约定。318 收藏 -
Go LDAP 的 Referrals 是引用地址,不是已读取的条目。本文比较限定单端点、报告未处理引用和受控追踪三种策略,并给出同时保留条目、引用与错误的查询函数。318 收藏