Go教程技术文章
-
Go reflect.Value.FieldByIndex 接收 StructField.Index 这样的字段路径,可读取嵌套或匿名嵌入结构体中的目标字段;遇到可能为空的指针时,应使用 FieldByIndexErr 获取可处理的错误。458 收藏 -
Go filepath.Rel 只能在目标系统能够相对化的路径之间计算结果。本文解释 Windows 盘符与 UNC 共享根不一致时为什么报错,给出卷名预判、跨平台测试和迁移方案选择。458 收藏 -
使用 strings.Builder 构造长字符串时,先校验空输入,再按片段和分隔符的字节数估算容量并调用 Grow。本文用一个可复用示例说明错误返回、Len、Cap、Reset 与 Builder 生命周期边界。458 收藏 -
使用 bytes.Cut 解析首个分隔符时,关键不是看 before 或 after 是否为空,而是读取 found。本文用一组覆盖空字段、缺少分隔符、空输入和空分隔符的示例,说明如何保留错误边界并安全复用原始字节切片。458 收藏 -
Go regexp 的关键不是把每次匹配都换成缓存,而是区分固定模式和动态模式:固定表达式用 MustCompile 在初始化阶段复用,动态表达式用 Compile 返回错误,并给缓存设置输入和容量边界。457 收藏 -
Go 1.27 的 bytes.CutLast 可以按最后一次分隔符拆分字节切片。本文说明它与 Cut、LastIndex 的区别、未找到和空分隔符边界,以及返回原切片视图时何时需要 Clone。457 收藏 -
Go encoding/json/v2 的 UnmarshalRead 面向单个顶层 JSON 值,不能直接当作多值流循环入口。本文用 jsontext.Decoder 与 UnmarshalDecode 逐个读取 Reader 中的 JSON 对象,并说明 io.EOF、数组封装和错误边界。457 收藏 -
Go gob 接口字段需要注册实际承载的具体类型。本文用完整消息往返示例说明两端注册、类型断言与名称冲突的排查方式。457 收藏 -
讲清 Go encoding/xml Encoder.Indent 的 prefix 与 indent 参数,演示结构体和 token 编码的可读 XML 输出,并说明 Flush、MarshalIndent 与混合文本边界。457 收藏 -
Go 的 opentype.NewFace 通过 FaceOptions.DPI 设置字体栅格化所用的每英寸点数。本文用一个最小示例说明 DPI、Size、Metrics 与绘制坐标的关系。457 收藏 -
Go go-echarts通过SetXAxis与AddSeries构造柱状图。本文用仓库收发数量示例说明BarData、分类顺序与多系列对齐,并处理缺失值、单位和HTML输出边界。457 收藏 -
Go database/sql 读取多个 SQL 结果集时,要在每组内部用 Rows.Next 遍历行,当前组结束后用 NextResultSet 切换,并在每次切换后重新调用 Next;本文给出两层循环、空结果集和错误处理写法。456 收藏 -
Go map 判断指定键是否存在,要使用 comma-ok 双值写法;本文用最小示例说明零值、缺键、nil map 与并发访问的边界。456 收藏 -
Go mime.TypeByExtension 需要传入带点的文件扩展名,未知映射返回空字符串,并可能受到系统 MIME 数据影响。本文从文件名提取、大小写处理、自定义映射和上传安全边界四个方面说明如何正确使用。456 收藏 -
Go 使用 x/text/message Printer 配合 language.Tag 输出地区化数字。本文比较 Printer、fmt 和显式格式化的适用边界,说明 Printf、Sprintf、%d、%f、%g 以及 # 标记的选择。456 收藏