Go语言技术文章
-
我就废话不多说了,大家还是直接看代码吧~ package main import ( "encoding/json" "fmt" ) type Project struct { Name string `json:"name"` Url string `json:"url"` Docs string `json:"docs,omitempty"` } func main() { p1 := Project{ N466 收藏 -
Go-ethereum 解析ethersjs中产生的签名信息 在签名验证的过程中,我们判断签名正确的前提是,签名解析后的公钥,和发起这次动作的人是同一个公钥。我们解析签名的需要知道,签名的消息,签名466 收藏 -
本文旨在快速介绍Go标准库中读取文件的许多选项。 在Go中(就此而言,大多数底层语言和某些动态语言(如Node))返回字节流。 不将所有内容自动转换为字符串的好处是,其中之一是避免昂466 收藏 -
slog.HandlerOptions 的 AddSource 能把调用文件和行号加入日志,配合 LevelError 可构造只输出错误的 Handler。本文给出路径精简、包装函数修正、结构测试和性能取舍的完整流程。465 收藏 -
Golang · Go问答 | 2天前 | channel · golang · select · 并发编程 · 性能排查 · channel default分支 忙等 time.Ticker context取消 Go select
本文解释 Go select 的 default 分支为何会把阻塞等待变成高频轮询,并分别给出移除 default、加入 Context、使用 Ticker、封装单次非阻塞尝试及处理关闭通道的改法。465 收藏 -
Go append 是否复用底层数组取决于容量。本文用 len、cap 和独立复制示例说明新旧切片互相影响的原因,并给出需要隔离时的处理方案。465 收藏 -
解释 Go flate.NewReaderDict 遇到错误字典时为何可能报 CorruptInputError,也可能无错误却产生错误字节,并给出字典 ID、输出上限、完整性校验与 zlib 替代方案。465 收藏 -
FileTransportFS 常与 file 协议绑定,是因为 http.Transport 按 URL scheme 分派已注册的 RoundTripper,而不是该函数内部强制拒绝其他协议。本文讲清 Go 1.22+ 的正确注册方式、直接替换 Transport 的区别、路径规则和迁移检查项。465 收藏 -
Go context.AfterFunc 会在取消后异步执行回调。本文用 stop 返回值、sync.Once 和 done channel 说明如何收敛外部资源的释放所有权,避免取消竞态下重复关闭或提前返回。465 收藏 -
Go database/sql 复用 sql.Stmt 时,先按 DB、Conn、Tx 区分所有权,再把创建与关闭绑定到同一生命周期;文章给出初始化复用、Rows清理、事务执行和停机收尾的实用写法。465 收藏 -
Go 的 exec.Cmd.Environ 返回当前命令环境的副本。本文解释旧快照、Env 继承、重复键和启动前检查的关系,给出避免读不到刚设置环境变量的实用写法。465 收藏 -
Go bytes.Reader 同时支持顺序读取、绝对偏移读取和定位。本文区分 Len、Size、ReadAt、Seek 的职责,并用 io.SectionReader 固定下游可见的缓冲区间。465 收藏 -
Go 请求同时设置 http.Client.Timeout 和 context.WithTimeout 时,最早到期的边界会取消请求。本文用截止时间、错误类型和受控实验判断超时来源,并给出生产环境的配置取舍。465 收藏 -
Go HTTP 请求已经超时,但服务端日志还在继续时,先分清客户端、请求上下文和服务端 deadline 三个边界,再检查下游是否真正收到 ctx,最后用 Err 与 Cause 记录责任归属。465 收藏 -
Go 读取同名 Cookie 时,Cookie 方法只返回一个值;本文用 CookiesNamed 和 ParseCookie 保留头部顺序,并说明服务端无法从请求头反推出 Path、Domain、SameSite 与过期时间。465 收藏