Go问答技术文章
-
Go Kong 同时设置 required 与 default 时,合法默认值也能满足必填。本文结合固定版本源码,说明显式输入、空字符串和业务校验的区别及改写方法。465 收藏 -
DecodeRuneInString 遇到非法 UTF-8 时返回 RuneError 和 1,而空字符串返回 RuneError 和 0。掌握 size 的含义,才能在逐字节清洗和校验循环中既不死循环,也不误删后续合法字符。464 收藏 -
Go 实现 UnmarshalJSON 时直接调用 json.Unmarshal 会递归。本文用定义类型切断方法集,再补上错误处理、业务校验和嵌套字段边界。464 收藏 -
Golang · Go问答 | 1个月前 | 重定向 · 排查 · Cookie · net/http · Go问答 · 重定向 Go Cookiejar http.Client CheckRedirect http.Cookie
Go http.Client 跟随重定向时,会在每个目标 URL 上重新咨询 CookieJar。Cookie 是否发送取决于目标域、Path、Secure 和有效期;Domain 未设置时是 host-only Cookie。本文用最小探针解释 CheckRedirect、CookieJar 与跨子域重定向的边界。464 收藏 -
Go 包装文件描述符、cgo 资源等外部句柄时,finalizer 可能在最后一次字段使用后提前运行。本文说明 runtime.KeepAlive 的准确位置、finalizer 闭包的常见陷阱,以及显式 Close 和 AddCleanup 的取舍。464 收藏 -
Go 中 os.Open 和 os.Stat 通常会跟随符号链接,os.Lstat 与 os.Readlink 则用于观察链接本身;Windows 还会受到链接权限、目标类型和卷路径处理影响。本文用一组小代码梳理不同打开方式,并给出跨平台读取与测试建议。464 收藏 -
Go multipart.Part.FileName 读取的是 Content-Disposition 中的 filename 参数。普通表单字段没有这个参数时返回空字符串,文件分段带空 filename 时也可能为空;如果有文件名,Go 还会用 filepath.Base 处理后再返回。464 收藏 -
Go 1.27 新增 uuid 标准库包,提供 New、NewV4、NewV7、Parse 等 API。本文用请求 ID 和数据库主键两个场景说明随机 UUID、时间有序 UUID、Parse 与 MustParse 的选择边界,帮助已有第三方依赖的项目平稳迁移。463 收藏 -
Go 的 nil channel 可以让 select 分支动态失效。本文区分 nil、开放和关闭 channel,演示双输入 fan-in 如何在识别 ok=false 后安全退出。463 收藏 -
从 net.Listen 的 network 和 address 入手,判断 Go TCP 监听只接受 IPv4 或 IPv6 的原因,并给出单族监听与显式双监听的处理方案。463 收藏 -
Go 默认把解码到 interface{} 的 JSON 数字变成 float64,UseNumber 则先保留为 json.Number。本文用示例说明精度变化发生在哪里、如何解析以及金额等场景的边界。463 收藏 -
Go cgo 交叉编译出现 C compiler not found,通常是交叉编译启用了 cgo,却没有把 CC 指向目标平台的 C 编译器。本文按环境变量、编译器匹配、sysroot 与无 cgo 回退路径逐层排查。463 收藏 -
Golang · Go问答 | 3星期前 | Context · 并发编程 · go语言 · 错误排查 · Go并发 context.AfterFunc sync.OnceFunc Stop竞争 重复清理
context.AfterFunc 返回的 Stop 只能阻止尚未开始的回调,不能等待已启动回调结束。本文用共享 OnceFunc 清理入口与 done 完成信号处理 Stop 和取消同时发生的竞争,并说明调用所有权、阻塞与独立清理 Context 的边界。463 收藏 -
Go 的 httptest.NewUnstartedServer 适合在启动 HTTPS 测试服务前修改 TLS 策略。本文说明 TLS、HTTP Server 配置与 StartTLS 的先后关系,并给出测试客户端和迁移检查清单。463 收藏 -
用 Go 的 exec.Cmd.Environ 查看子进程实际配置的环境快照,理清 Dir、Env、PWD 和重复环境变量之间的覆盖关系,定位工作目录或环境变量不符合预期的问题。463 收藏