Go教程技术文章
-
Go big.Rat 转小数时,先保留精确有理数,再用 FloatString 指定小数位;不要提前转 float64。本文说明 FloatString、FloatPrec 和 big.Float 的精度边界,以及金额、比例等场景的选择。266 收藏 -
Go 订单金额超过 int64 时,按最小货币单位使用 big.Int,比例计算使用 big.Rat,并守住 JSON 与数据库边界。124 收藏 -
Go 模板选型的关键不在 API 是否相似,而在最终输出是否会被浏览器解析。本文用同一份数据说明 html/template 的上下文自动转义、text/template 的纯文本边界,以及可信 HTML 片段的使用条件。112 收藏 -
Go 的 html/template 会按输出上下文自动转义。本文解释为什么不能直接拼 HTML 字符串,以及如何划分普通文本、可信片段和回归检查边界。388 收藏 -
Go 渲染 HTML 时,应使用 html/template 并让普通用户输入保持 string 类型。本文说明上下文自动转义、属性与 URL 边界,以及 template.HTML 只能承载可信片段的使用条件。314 收藏 -
Go text/template 访问 .Profile.Name 失败时,先拆解点号路径和点号作用域,再区分字段、map 键、nil 值与执行错误,最后用 missingkey、with、index 稳定修复。486 收藏 -
Go text/template 输出空字符串不一定是字段缺失。本文区分 map 缺键、空字符串和结构体零值,并用 missingkey=error、hasKey 与 index 给出可执行的排查和处理方式。204 收藏 -
Go text/template 默认可能忽略缺失 map 键。本文比较 missingkey 的三种策略,示范如何让必填键在 Execute 阶段直接返回错误,并处理可选字段。102 收藏 -
Go 正则解析日志时,不要把 FindStringSubmatch 的数字下标散落在结构体初始化里。使用命名捕获组配合 SubexpIndex 建立字段映射,匹配失败返回错误,可选字段缺失保留零值,正则调整后更容易维护。436 收藏 -
Go 的 FindStringSubmatch 返回 nil、空字符串和可选捕获组未命中并不是一回事。本文用命名捕获、SubexpIndex 和 SubmatchIndex 给出可靠判断方法。207 收藏 -
Go regexp 支持命名捕获组,适合解析带可选字段的日志和配置文本。本文用 SubexpNames、SubexpIndex 和 FindStringSubmatch 区分整体不匹配、可选字段缺失与业务默认值。252 收藏 -
Go 中不要把 URL 当普通字符串拼接:路径片段用 URL.JoinPath,查询参数用 url.Values,并且每个动态值只在所属语义层编码一次。149 收藏 -
Go 处理回调地址时,Path、RawPath、EscapedPath 和 RawQuery 的语义并不相同。本文用 net/url 示例说明路径解码、查询参数、编码斜杠以及 PathEscape 与 QueryEscape 的正确边界。307 收藏 -
Go net/url 处理中,查询参数、动态路径片段和完整 URL 不能共用一种编码方式。本文用 url.Values、QueryEscape、PathEscape 与 EscapedPath 说明如何只编码查询参数并保留路径斜杠。347 收藏 -
用自定义错误承载动作、资源和底层原因,再通过 errors.As 穿过包装层提取结构化上下文,避免解析字符串或丢失错误契约。227 收藏