Go教程技术文章
-
Go constant.BinaryOp 不会把分数运算立即变成 float64。本文用 token.QUO 构造 1/3,组合出 7/6,再通过 Num、Denom 和 ExactString 读取精确结果,并说明整数除法与浮点转换的边界。300 收藏 -
Go x509.OID.String 可以把 ASN.1 对象标识符输出为点分十进制文本。本文说明 OIDFromInts 与 String 的配合、空 OID 的日志边界,以及 String、MarshalText、ParseOID 在展示和文本交换场景中的区别。300 收藏 -
用 encoding/json.Decoder 的 InputOffset 和 SyntaxError.Offset 定位坏 JSON,区分字节偏移与字符位置,并给出流式解析、UTF-8 和错误行号的可复用处理方式。299 收藏 -
用 Go archive/tar Reader.Next 读取带 PAX 稀疏扩展的归档,核对 Header.Size、空洞补零、PAXRecords 与遍历边界,并给出可复现的验收方法。299 收藏 -
filepath.Rel 报错通常不是目标文件不存在,而是 basePath 和 targPath 不在同一个路径坐标系。本文用 Go 示例拆解绝对相对混用、Windows 卷名、UNC 路径和 URL 误用,并给出可复用的错误处理封装。299 收藏 -
io.LimitReader 限制的是包装 Reader 在整个读取过程中的最大字节数,不是每次 Read 的缓冲区大小。本文用原创 Go 示例说明如何设置上限、正确处理 n 与 io.EOF,以及如何用 limit+1 判断源内容是否超限。299 收藏 -
用 Go signal.NotifyContext 把 SIGINT、SIGTERM 转成统一的 Context 取消,说明 worker、HTTP 服务和外部资源如何优雅收尾,以及 stop 的注销边界。299 收藏 -
Golang · Go教程 | 1个月前 | 标准库 · 模板 · web安全 · Go教程 · Go html/template 用户输入 HTML转义 html.EscapeString 上下文转义
Go 中将用户文本安全显示到 HTML 页面,可在明确的文本节点场景使用 html.EscapeString;页面模板更适合交给 html/template 按上下文自动转义。本文用最小留言页讲清实现、验收与边界。299 收藏 -
用 Go 标准库 suffixarray.Index.Lookup 查找重复字节片段,讲清 n 参数、无序偏移、字节下标和空结果边界,并给出可直接改造的示例。299 收藏 -
用 Checker v2 在 Go 结构体标签中组合 trim、lower、required、email 和跨字段规则,让请求数据先清洗再校验,并统一输出结构化错误。299 收藏 -
Go循环拼接怎样减少临时分配?从字节预算、Grow预留和WriteString用法入手,说明结果持有、禁止复制与Reset边界,并给出分配比较方法。299 收藏 -
用 go test -race 从冲突访问栈和 goroutine 创建栈定位共享 map 竞态,再用同一把 sync.RWMutex 覆盖读取、写入和遍历路径。299 收藏 -
Go iter.Pull 把 push-style 迭代器转换成 next 和 stop 两个函数。只要调用方可能在读完前返回,就应在取得 stop 后立即 defer stop(),让命中条件、自然结束和异常路径都能正确收尾。299 收藏 -
Go net/http.Server.MaxHeaderBytes 用来限制服务器解析请求头时读取的字节数,包含请求行但不限制请求体。本文说明零值默认值、显式配置、ReadHeaderTimeout 与 MaxBytesReader 的边界。299 收藏 -
用一个可复现的 Go 测试示例讲清 testing.T.Cleanup 的注册时机、后进先出顺序、子测试边界和 t.Parallel 下的安全清理方式。298 收藏