Go语言技术文章
-
Go bytes.Repeat 会返回由多个 b 拼成的新字节切片,但负数次数或结果长度溢出会触发 panic。本文从固定填充和测试数据场景出发,说明零次数、空输入、参数保护、结果规模和改用流式写入的边界。454 收藏 -
Golang · Go教程 | 1星期前 | 网络编程 · 标准库 · Go教程 · HTTP客户端 · Go 错误处理 errors.Is errors.As net/http.Client Client.Do
Go net/http.Client 的 error、HTTP 状态码和响应体读取错误属于不同阶段。本文用 %w 保留原始 cause,用 url.Error 和自定义 HTTPError 承载上下文,并说明 Body 关闭、读取、重试边界。454 收藏 -
用 Go crypto/ed25519 完成短消息签名和验证,并通过复用消息字节、预分配批处理结果和延迟编码减少外围额外分配。本文也说明签名切片本身仍由标准库返回,避免把优化目标说成零分配。454 收藏 -
Go html/template.URLQueryEscaper 可以把多个参数的文本表示编码成适合嵌入 URL query 的字符串。本文从最小用法出发,说明空格和特殊字符的处理、模板上下文自动转义、重复 key 与空值边界,以及避免重复编码的工程写法。454 收藏 -
围绕 Go table-driven JSON 测试说明 t.Parallel 的延迟执行、旧模块循环变量捕获和 Go 1.22 语义变化,并给出兼容旧模块的最小修复与共享可变数据排查方法。454 收藏 -
用 Go 标准库的一次性初始化函数封装懒加载配置,验证成功值、初始化错误与 panic 缓存语义,避免并发请求重复初始化。453 收藏 -
围绕 Go 读取大文件时的内存峰值,拆解 os.ReadFile 的一次性分配、bufio.Reader 的流式边界、缓冲区大小选择和失败恢复检查。453 收藏 -
Go 1.25 在 crypto 包中增加 MessageSigner 接口与 SignMessage 函数,用于兼容由签名器自行哈希消息和传统 Sign 方法。本文通过真实回退路径说明接口判断、哈希边界与错误处理。453 收藏 -
用一个有界任务队列拆开 Go sync.Cond 的等待谓词、Signal 与 Broadcast 边界,说明锁顺序、虚假唤醒式重检和多消费者通知如何验证。453 收藏 -
multipart.Reader.NextRawPart 会按 MIME boundary 逐个返回 Part,并保留 quoted-printable 的原始传输编码。本文用一个带前导换行的 multipart body,说明如何区分边界前空白、Part.Read 和 io.EOF,避免把未读内容或编码差异误判成解析失败。453 收藏 -
Go select 一旦加入 default,就会在没有可通信 case 时立即返回;如果它被放进无条件循环,空闲路径就会变成忙轮询。本文说明如何判断、修复并保留必要的非阻塞语义。453 收藏 -
Golang · Go问答 | 2个月前 | 超时 · 错误处理 · go · Context · Go context.Err context.DeadlineExceeded context.WithDeadline context.Canceled
Go context.WithDeadline 提前调用 cancel 时,ctx.Err() 返回 context.Canceled;只有 deadline 先到期才返回 context.DeadlineExceeded。本文用可复现代码区分主动取消、父级取消和真正超时。453 收藏 -
Go TLS 按 IP 校验证书失败时,关键不是继续改 CommonName,而是读取证书的 IPAddresses SAN。本文用一段最小 Go 代码定位缺失、错配和校验输入问题。453 收藏 -
Go 接口处理时间字段时,Unix 时间戳和 RFC3339 文本应按输入协议分别解析。本文用 time.Parse、time.Unix 和单位检查整理一套可复用的选择规则。453 收藏 -
讲清 Go flight recorder 故障诊断端点的鉴权、单并发、临时文件快照、下载响应、测试与运行边界,给出可直接改造的 Handler。453 收藏