Go语言技术文章
-
Go test -run 匹配的是测试名称而非文件名。通过包范围、正则锚点和子测试层级解释未执行现象,并区分缓存、跳过、未匹配与构建失败,给出准确命令及独立示例。124 收藏 -
Go 的 fs.ValidPath 只检查 fs.FS 路径名是否符合 slash-separated、unrooted 规则,不负责判断文件是否存在。本文用具体输入边界解释点号、斜杠、反斜杠和冒号,并给出放在 FS 调用入口的检查写法。124 收藏 -
解释 Go slog JSONHandler 的 JSON 字段顺序为何不能当作契约,并给出按键解析、稳定测试和固定文本格式化方案。124 收藏 -
Go x/text/runes 处理的是 UTF-8 文本中的 rune,不是可以直接按字节下标切开的字符。本文从 Remove、Map、If 和 transform.String 的关系出发,说明字节索引、分块读取与非法 UTF-8 的边界。124 收藏 -
Go io.NewOffsetWriter 会把逻辑写入偏移映射到 WriterAt 的指定起点,但它不自动限制区间长度。本文用最小示例说明 Write、WriteAt、Seek 的偏移关系,以及如何补上长度检查。124 收藏 -
用日报写入示例说明Go os.File.Sync的职责,区分缓冲写入、Flush、Sync和Close,保留阶段错误并说明批次确认、失败残留及持久化边界。123 收藏 -
Go x/text/width 的 Widen 会把存在宽体变体的字符映射为宽字符,适合全角化处理。本文给出字符串与流式 Reader 两种写法,并说明未映射字符、Unicode 宽度类别和数据存储边界。123 收藏 -
Go 的 math.Ilogb 返回浮点数的二进制整数指数,不是普通的 Log2 结果。本文从 2 的幂、非整数幂和 Frexp 对比入手,解释零、无穷大、NaN 的特殊返回值,并给出选择函数和封装边界。123 收藏 -
Go binary 的整数解码应遵循协议字节序,而不是本机端序。通过固定字节与八字节头部示例说明字段宽度、偏移和完整读取,区分短读与端序错误,并解释编码回环为何不等于协议互通。122 收藏 -
Go bytes.Count 用一个整数返回字节子切片的不重叠出现次数。本文说明最小写法、重叠匹配、空分隔片的 UTF-8 码点语义,以及如何区分返回 0 与参数错误。122 收藏 -
Go html/template 解析多个文件或 define 命名模板后,可以用 Templates 遍历关联模板并读取 Name,再用 Lookup 检查某个名称是否存在。本文给出最小示例,并说明 ParseFiles 根名称、命名模板和 ExecuteTemplate 参数不一致时的排查顺序。122 收藏 -
Go 的 golang.org/x/text/unicode/bidi 用 Paragraph 表示一段双向文本:先用 SetString 配置段落,再用 Direction 读取整体方向、用 Order 遍历视觉顺序中的 Run。本文说明混合方向文本的读取边界、原文位置和 Ordering 生命周期。122 收藏 -
Go x/text/width 的 LookupRune 接收一个 rune 并返回 Properties。本文用一个字符检查器演示如何读取 Kind、Wide、Narrow 与 Folded,并说明它与终端显示列宽的区别。122 收藏 -
使用 Go transform.NewReader 配合 GBK Decoder 将旧编码文本转换为 UTF-8。本文澄清包路径,给出有界读取示例,并说明编码来源、解码错误、输入输出上限与业务内容边界。122 收藏 -
Go Request.GetBody 为 nil 时,先区分重定向重放和应用层重试,再用可重复创建 Body 的请求工厂保证每次上传读取同一份数据。122 收藏