Go语言技术文章
-
通过完整 Go SFTP 上传函数说明同目录临时文件、写入和关闭错误处理、POSIX 重命名及覆盖策略,并区分名称交接、持久化和消费确认,处理响应中断后的不确定结果。355 收藏 -
Go bitset 的 NextSet 返回索引和布尔值两个结果。本文说明 found 的真实含义、正确遍历写法、空集边界,以及 Count 与 Len 的区别。355 收藏 -
使用 Go syscall.Flock 在 Unix 类系统中实现单实例文件锁,讲清 LOCK_EX、LOCK_NB、占用错误、文件描述符生命周期和单机边界。355 收藏 -
用 go/types.NewMethodSet 遍历 Go 类型的方法集合,结合 Selection 的 Obj、Recv、Index 和 Indirect 字段识别嵌入类型提升的方法,并比较 T 与 *T 的方法边界。355 收藏 -
sync.WaitGroup 可以复用,但下一轮正向 Add 必须等上一轮所有 Wait 返回;本文用多轮任务示例说明 Add、Done、Wait 的计数边界,并列出三个常见误区。355 收藏 -
Go 标准库没有统一的跨平台文件锁 API。本文比较 Unix flock 与 Windows LockFileEx 的竞争、清理语义,再给出原子占位、数据库和 Redis 等替代策略。354 收藏 -
Golang · Go问答 | 3星期前 | TLS · 连接池 · 故障排查 · Go问答 · 证书轮换 DidResume session ticket ClientSessionCache Go TLS SetSessionTicketKeys
Go TLS 证书轮换后仍看到旧会话,通常不是证书文件没替换,而是旧连接、HTTP Transport 连接池或 session ticket 在复用。本文用 DidResume 区分恢复握手,给出服务端证书指针切换、票据密钥轮换、客户端 Transport 重建和长连接排空的迁移顺序。354 收藏 -
Go 的 net/url.URL.Redacted 只会把 URL.User 中的密码替换为 xxxxx。本文说明如何区分 Userinfo 与查询参数,把脱敏固定到日志出口,并处理解析失败、无密码和 token 参数等边界。354 收藏 -
Go bufio.Reader.Peek 的请求长度超过缓冲区时,不会自动扩容,而是返回当前可用字节和 bufio.ErrBufferFull。本文按 n、Reader.Size、Buffered 与错误值拆开说明,并给出先检查固定长度头部、再读取完整内容的处理方式。354 收藏 -
Go regexp 中点号默认不匹配换行,是因为 s 标志默认关闭。本文用最小示例说明 (?s)、局部分组 (?s:...) 与 m 标志的区别,并整理 CRLF 和匹配范围边界。354 收藏 -
Kong 的 Bind 是解析器级依赖登记,Context.Run 的参数是本次命令执行的显式注入。本文用一个可复用的 Go CLI 示例比较两种方式的时机、作用域、接口绑定和选择边界。354 收藏 -
sync.Cond.Wait 没有 context 参数,直接等待可能让取消中的 goroutine 长时间阻塞。本文用 context.AfterFunc 配合同一把 Locker 唤醒等待者,给出 WaitContext 封装、竞态边界和 channel 替代条件。354 收藏 -
本文用一个目录摘要工具串起 filepath.WalkDir 的输入边界、目录过滤、普通文件统计、遍历错误和大文件排序,帮助你把标准库 API 组合成可维护的 Go 命令行程序。354 收藏 -
介绍 Go scanner.ErrorList.RemoveMultiples 的排序和按行去重语义,说明如何保留完整原始诊断、生成一条一行的展示结果,以及无效位置和原地切片修改的边界。354 收藏 -
本文用 Go debug/macho 读取 Mach-O 的 Dysymtab.IndirectSyms,说明它与 Symtab.Syms 的索引关系,并给出处理缺少表、空表和越界索引的只读示例。354 收藏