Go教程技术文章
-
Go text/template.Template.Clone 会复制模板集合的命名空间,让公共模板可以派生出互不覆盖的变体。本文用完整流程说明 Clone、Parse、Funcs 和 Execute 的顺序、错误处理与并发边界。314 收藏 -
Go io/fs.ReadDirFile.ReadDir 通过 n 参数决定分批读取还是一次取完剩余目录项。本文结合目录文件接口说明游标、io.EOF、部分结果、关闭资源和选型边界。501 收藏 -
Go mod edit 的 replace 可以在不改 import 路径的情况下,把当前主模块依赖切到本地目录。本文区分指定版本与全版本替换,说明 require、module 路径和删除临时替换时的边界。462 收藏 -
Go html/template 会按 CSS 上下文处理 style 中的动态值。本文用白名单主题映射说明 template.CSS 的适用范围、可信来源、不可信输入隔离、ZgotmplZ 排查方法,以及它与普通字符串和 template.HTMLAttr 的边界。275 收藏 -
Go http.Flusher 是 ResponseWriter 的可选能力接口。本文用一个流式 HTTP 处理器说明怎样运行时判断、写入后刷新、处理包装器降级,并解释为什么代理仍可能缓冲响应。173 收藏 -
bufio.Reader.Peek 只预览数据,不会移动读取位置,但返回的 []byte 仍依赖 Reader 的内部缓冲区;Discard 或下一次读取后,这个切片不能再当成稳定快照。本文说明 Peek、Discard 与复制之间的边界,并给出协议头判断和安全保留数据的写法。253 收藏 -
Go x/sync/semaphore.Weighted.TryAcquire 会在不阻塞调用方的情况下尝试获取指定权重的令牌,成功返回 true,失败返回 false 且不改变信号量状态。本文结合非阻塞入口、权重配对和失败回退说明实际写法。194 收藏 -
Go netip.AddrPort.Compare 返回 -1、0、+1,并按 IP 地址优先、端口其次比较两个端点。本文用 sort.Slice 接入排序,同时说明 AddrPort{} 无效零值和端口 0 的边界。354 收藏 -
Go regexp/syntax.EmptyOpContext 接收位置两侧的 rune,返回该位置满足的零宽断言组合。本文说明 -1 文本边界、换行、ASCII 单词字符和 EmptyWordBoundary 的判断规则,并给出可复用的 Go 示例。365 收藏 -
使用 constant.StringVal 提取字符串常量的实际内容,区分 String、ExactString 的展示形式,并通过 Kind 避免把 Unknown 当作合法空字符串。380 收藏 -
Go exec.Cmd 返回 error 时,不能只把所有错误都当成退出码。本文按 Start/Run、ExitError 和 ProcessState 拆分启动错误、非零退出和等待 I/O 错误,并给出可复用的判断代码。471 收藏 -
Go format.Node 不会凭空恢复丢失的注释;要保留注释,应使用 parser.ParseComments,并把同一个 token.FileSet 传给 format.Node。本文比较完整 ast.File、printer.CommentedNode、局部节点和 format.Source 的边界。276 收藏 -
用 Go token.File 将字节偏移转换为文件、行号和列号,说明 AddLine、PositionFor、//line 调整及越界边界。156 收藏 -
讲清 Go constant.BitLen 如何计算整数常量绝对值的二进制位数,并用正负数、零、超大整数和 Unknown 示例区分有效位数、符号位与固定宽度容量。193 收藏 -
初始化 Selections 后执行类型检查,用原始选择器节点取得方法对象、接收者与访问路径,并处理包限定名称和缺失结果。168 收藏