Go语言技术文章
-
sync.Cond 的难点不是调用 Broadcast,而是让共享状态、锁和等待条件保持同一条时间线。本文用一个任务队列场景拆解 Wait、Signal、Broadcast 的正确顺序、常见误区与可验证写法。410 收藏 -
运行 go run transfersh-server/*.go 时出现“cannot find package”错误,根本原因是 Go 未自动下载项目所需的第三方依赖包,需手动执行 go get 安装缺失模块。 运行 go run transfersh-server/*.go 时出现“cannot410 收藏 -
Go 写文件时,os.File.Sync 成功并不等于包含它的目录项也完成持久化。本文用临时文件、重命名和目录同步的完整流程,说明崩溃恢复时该看哪些边界。410 收藏 -
Go slog 适合结构化记录请求和业务事件,但把请求对象直接写入日志很容易带出手机号、令牌或地址。本文用字段白名单、LogValuer 和审计分层,搭一套可检查、可回退的日志边界。410 收藏 -
围绕 Go os.Open 读取配置的场景,说明如何在打开成功后立即绑定 defer Close,处理读取与解码错误,并避免循环中的文件句柄延迟释放。410 收藏 -
filepath.EvalSymlinks 会逐层解析路径中的符号链接并清理结果。本文给出最小用法、多层相对链接示例、断链和链接环错误处理,以及把最终路径限制在受信根目录内的检查方法。410 收藏 -
Go 1.24 及以上通过 http.Transport.Protocols 限定客户端使用 HTTP/1、HTTP/2 或明文 h2c,并用 Response.Proto 验证实际协商结果。410 收藏 -
Golang · Go教程 | 2个月前 | 前端开发 · Go教程 · html/template · Go html/template CurrentPath 导航高亮 template.FuncMap Go网页模板
Go 服务端渲染页面时,导航高亮经常被写成散落在多个页面里的条件判断。文章给出 CurrentPath、NavItem 与 template.FuncMap 的最小组合:路由层传入页面状态,模板负责循环和 class 条件,CSS 只认 is-active,从而让新增菜单和单元测试都更轻松。409 收藏 -
用 Go io.Copy 处理上传、代理和文件转存时,先限制输入边界,再利用 ReaderFrom 的快路径,最后用可复现基准确认吞吐与内存变化。409 收藏 -
Go 1.27 为 compile、link、asm、cgo、cover、pack 等工具加入 response file(@file)参数解析。本文用一个构建参数过长的场景,说明文件格式、引号换行边界、适用工具和迁移核对点。409 收藏 -
Go modules 中 replace 写了却仍下载远程模块时,按主模块、require、替换版本和 go list -m -json 结果逐层定位真实来源。409 收藏 -
Go 的 json omitempty 不会按传统规则省略结构体值字段。本文用最小示例说明值字段、指针字段和未提供状态的区别。409 收藏 -
解释 Go testing.T.Parallel 为什么要等父测试函数返回,拆解 t.Run、并行栅栏、共享资源和调试检查方法。409 收藏 -
Go 的 slices.SortStableFunc 会保留比较器判定为相等的元素在原切片中的相对顺序。本文用带 score 和 id 的记录演示比较器写法、稳定性测试、tie-breaker 的影响,以及原地排序和复制排序的选择。409 收藏 -
用 go test -benchmem 和 testing.B.ReportAllocs 读懂 B/op、allocs/op,再通过子基准、计时边界、逃逸分析与内存剖析定位 Go 基准中的临时对象来源。409 收藏