Go语言技术文章
-
Go Flock 可以用 TryLockContext 在限定时间内反复等待文件锁。本文用 context.WithTimeout 示例说明 bool、error、ctx.Err() 的判断方式,以及成功持锁后的 Unlock、retryDelay 和锁文件边界。113 收藏 -
本文用文件名清理场景说明 strings.CutSuffix 的返回语义:命中后返回去掉后缀的字符串视图并保留 found 状态,短期使用可以减少无意义复制,跨越长生命周期时再用 strings.Clone 获取独立数据。113 收藏 -
说明 maps.Clone 对缺失键、零值和显式 nil 的保留方式,提供整数指针配置草稿复制写法,并比较浅拷贝、定制复制及并发所有权约束。113 收藏 -
Go 1.24 引入的 os.Root 可以把文件访问限制在一个目录树内。本文用批处理场景说明如何复用 Root、直接传入相对路径并及时关闭文件,在保留越界和符号链接边界的同时减少调用层反复拼接路径与建立根句柄的额外工作。113 收藏 -
Go Koanf 已经加载整份配置时,可以把目标路径传给 Unmarshal,只将一个子树映射到结构体。本文集中排查路径、koanf 标签、字段形状和 FlatPaths 的边界。112 收藏 -
Golang · Go教程 | 4星期前 | select · Context · 超时控制 · Go教程 · time.NewTimer context.Done Go超时 Go select 多路等待
用 select 同时等待业务结果、context.Done 和超时信号,区分成功、主动取消与截止时间到达三种结果,并让后台 goroutine 在超时后仍能安全收尾。112 收藏 -
Golang · Go问答 | 4星期前 | 超时 · go · HTTP服务 · net/http · Go net/http ResponseController SetReadDeadline 请求体超时
Go HTTP 服务端要限制慢请求的读取时间,可以用 ResponseController.SetReadDeadline 设置整次请求读取的截止时间。它覆盖请求体读取,零值表示取消 deadline,已经过期后不能靠重新设置更晚时间延长;还要区分 ResponseWriter 不支持该能力与请求本身读取超时。112 收藏 -
Go crypto/mldsa 的签名输入涉及原始消息、Context、参数集和私钥种子。本文对比生成与导入密钥、普通与确定性签名,给出最小示例及输入选择表。112 收藏 -
Go runtime/trace.StartRegion 返回一个需要在同一 goroutine 中结束的 Region。本文用最小 trace 接入示例说明 defer、regionType、嵌套和 goroutine 边界,并比较 StartRegion、WithRegion 与 NewTask 的适用场景。112 收藏 -
通过 CEL PartialVars 与 OptPartialEval 描述尚未提供的输入,用完整 Go 示例比较未知、false 和 true,说明属性模式、结果分类和补齐输入后的重新求值。112 收藏 -
Go database/sql 在 Scan 时对 *[]byte 会保存一份调用方拥有的副本,而 *sql.RawBytes 可以避免这次复制,但数据只在下一次 Next、Scan 或 Close 前有效。本文按查询负载说明使用边界、显式复制方式和错误处理。112 收藏 -
io.MultiWriter 会按顺序把同一份数据写给多个 Writer;任一 Writer 返回错误就停止后续写入,短写则转换为 io.ErrShortWrite。本文说明部分成功、失败传播与补偿设计的边界。112 收藏 -
Go archive/zip.File.OpenRaw 返回 ZIP 条目中未解压的原始数据。本文区分 Open 与 OpenRaw,说明如何根据压缩方法读取原始字节,并介绍原样复制条目时使用 Writer.Copy 的边界。112 收藏 -
Go Info.InitOrder 可在类型检查后列出包级变量初始化器。本文给出读取 Lhs、Rhs 和源码位置的示例,解释依赖排序、多返回值以及零值变量和 init 函数的范围。112 收藏 -
严格说 NewEncoder 没有单独的 Flush 方法,Close 才是完成尾部冲刷的关键动作。本文解释 3 字节分组、尾部缓冲、Close 顺序和多层 Writer 的错误处理。112 收藏