Go语言技术文章
-
Go go/constant.Sign 只返回 -1、0 或 1,但非零复数和 Unknown 也可能得到 1。本文从普通数值、复数和未知值三个场景说明 Sign 的语义,演示如何先判断 Kind 再做符号分类,并给出何时改用 Compare、Real 和 Imag 的边界。157 收藏 -
讲清 strconv.AppendQuote 如何把字符串追加为 Go 双引号字面量,说明返回值、缓冲区复用、转义边界,并给出可复现的基准比较模板。444 收藏 -
Go 1.24 新增的 regexp.Regexp.AppendText 可以把已编译正则追加到已有 []byte。本文用一个带前缀缓冲区示例说明返回值、错误处理、与 String 的关系及 POSIX/Longest 的输出边界。368 收藏 -
Golang · Go教程 | 3天前 | 标准库 · time · 时区 · Go教程 · Go 本地时间 time.LoadLocation time.Parse time.ParseInLocation 时区解析
Go 的 time.Parse 对无时区字符串默认按 UTC 解释,而 time.ParseInLocation 可以把指定 Location 用作本地时间的解释位置。本文用最小示例比较两者差异,并说明 LoadLocation、输入协议和错误处理的边界。260 收藏 -
在 Go html/template 中输出 href、src 等 URL 属性时,应让模板根据上下文完成转义和协议过滤。本文用直接绑定、查询参数和允许列表示例说明如何避免 javascript 协议、重复转义与不当使用 template.URL。160 收藏 -
Go text/template 默认允许缺失 map key 继续执行。本文说明 missingkey=error、default、zero 的差异,并用 Execute 错误处理和排查清单,让关键模板字段缺失时及时暴露问题。345 收藏 -
Go 里只想按首个分隔符拆成前后两段时,strings.Cut 用 found 明确表达是否找到;需要多个字段并保留最后一段时,strings.SplitN 通过 n 控制拆分次数。本文用重复分隔符、缺少分隔符和边界参数说明两者的选择。144 收藏 -
遍历 tar 归档时,当前条目 Read 返回的 EOF 与 Reader.Next 返回的 EOF 含义不同。本文用循环示例说明正常结束、未读完条目、真实解码错误和空文件的处理边界。125 收藏 -
strconv.ParseInt 的 bitSize 决定输入必须落入哪一种有符号整数范围。本文用位宽表和可复用代码区分 ErrSyntax、ErrRange 与 NumError,说明为什么范围错误时返回的边界值不能直接进入业务逻辑。335 收藏 -
本文说明 strconv.QuoteRune 如何把单个 rune 转成可复用的 Go 字符字面量,并对比控制字符、Unicode、ASCII 与图形字符场景下的函数选择。256 收藏 -
Go 的 regexp/syntax.Parse 可以在配置进入业务流程前解析正则并返回语法树或错误。本文说明如何固定 Flags、识别 syntax.Error 错误码、限制输入长度、脱敏记录日志,并在发布前区分语法可解析与业务匹配正确。325 收藏 -
go/ast.MergePackageFiles 可以把同一包的多个 *ast.File 合并成一个文件级 AST,但它依赖已废弃的 ast.Package 和 MergeMode。本文用最小示例说明三个过滤选项的作用、导入与注释边界,以及何时应改用 go/types。193 收藏 -
regexp.FindAllStringIndex 返回的是原始 Go 字符串的字节偏移而不是 Rune 下标。本文用中文文本说明如何直接切片匹配结果、按需换算字符位置,并处理空匹配、原文变化和自动化流水线中的边界门禁。177 收藏 -
用 Go 的 net/url.URL.ResolveReference 根据绝对 base URL 解析相对路径、根路径、查询和片段,重点说明目录尾斜杠、绝对引用和 JoinPath 的边界。474 收藏 -
解释 net/http ServeMux 中 /docs、/docs/ 和 /docs/{$} 的匹配边界,说明自动补尾斜杠的原因,并给出精确路径与子树路径的注册选择。177 收藏