Go语言技术文章
-
讲清 html/template URI 上下文自动转义、template.URLQueryEscaper 与 url.Values.Encode 的边界,给出安全拼接单个和多个查询参数的 Go 示例。112 收藏 -
Go 的 encoding/csv Writer 会按字段内容自动决定是否加引号,但不会默认把空字符串写成双引号。本文解释 Comma、UseCRLF、Flush、Error 与全引用编码方案,解决批量导出时的格式兼容问题。112 收藏 -
sync.Cond 出现等待不返回时,先检查共享条件是否由同一把锁保护,再确认 Wait 是否位于 for 循环中。本文用原创 Go 示例拆开 Signal、Broadcast、条件状态与 channel 的适用边界,帮助定位所谓的唤醒丢失。112 收藏 -
Go Koanf 已经加载整份配置时,可以把目标路径传给 Unmarshal,只将一个子树映射到结构体。本文集中排查路径、koanf 标签、字段形状和 FlatPaths 的边界。112 收藏 -
Golang · Go教程 | 1星期前 | select · Context · 超时控制 · Go教程 · time.NewTimer context.Done Go超时 Go select 多路等待
用 select 同时等待业务结果、context.Done 和超时信号,区分成功、主动取消与截止时间到达三种结果,并让后台 goroutine 在超时后仍能安全收尾。112 收藏 -
Golang · Go问答 | 1星期前 | 超时 · go · HTTP服务 · net/http · Go net/http ResponseController SetReadDeadline 请求体超时
Go HTTP 服务端要限制慢请求的读取时间,可以用 ResponseController.SetReadDeadline 设置整次请求读取的截止时间。它覆盖请求体读取,零值表示取消 deadline,已经过期后不能靠重新设置更晚时间延长;还要区分 ResponseWriter 不支持该能力与请求本身读取超时。112 收藏 -
Go 泛型约束不是把类型随便放进尖括号,而是用类型集合明确允许哪些类型,并把可比较、可排序等操作边界交给编译器检查。本文用可比较键和值排序两个例子说明约束写法、~ 底层类型和常见误区。111 收藏 -
Go 的 http.ServeContent 已经处理了文件下载中的 Range 和 If-Modified-Since,但 ETag 需要应用自己补上。本文用一个小型下载接口拆开请求头、响应状态与验收方式,避免把 200、206、304 混成一种成功。111 收藏 -
Go 中从 nil channel 接收不会返回零值,而是永久阻塞;只有已关闭且已耗尽的 channel 才会返回元素类型零值并令 ok 为 false。本文用状态对比和可取消示例说明排查与修复边界。111 收藏 -
Go 文件在 Linux 能打开但 Windows 失败,通常是手写分隔符、盘符或相对路径基准不一致。本文用 filepath.Join、FromSlash、ToSlash 和 PathError 给出排查与修复方法。111 收藏 -
Go benchmark 每次运行结果差很多,通常不能只靠增加 -count 解决。本文从计时区间、go test 参数、机器隔离和 benchstat 比较四个方面,给出一套可重复的环境噪声控制方法。111 收藏 -
用 pprof.Do 把标签限制在请求和任务的明确作用域内,理解 goroutine 继承、同名覆盖和线程池复用,避免并发剖面出现串标。111 收藏 -
Go strings.FieldsFunc 会把连续满足条件的字符视为一个分隔区间,并丢弃首尾分隔符。本文用混合分隔符和边界输入说明如何稳定切词、避免空字段误判。111 收藏 -
Go 的 SameSite 只负责把 Cookie 的跨站发送策略写入 Set-Cookie,真正是否携带还要看浏览器请求类型、Secure、Fetch credentials 与服务端 CORS。本文用场景表和代码说明 Strict、Lax、None 的边界。111 收藏 -
介绍GJSON读取点号键名的路径转义写法,区分Go字符串与GJSON语法,并用完整示例说明动态组件转义、字段白名单和缺失结果处理。111 收藏