Go语言技术文章
-
Go 的 container/heap 读取分三种场景:只读堆顶、用 heap.Pop 消费原堆,以及复制堆后得到有序快照。本文用最小堆示例说明索引 0、Less 规则、空堆判断和指针元素的边界。308 收藏 -
Go 的 QueryRow 适合读取预期只有一行的结果,但它不会替你限制 SQL 返回多少行。本文用 WHERE、LIMIT 1、Scan、sql.ErrNoRows 和 QueryRowContext 说明单行查询的范围与错误边界。126 收藏 -
掌握 Go sort.Search 的单调谓词、空切片与 len(data) 尾部返回值,正确处理升序、降序、重复值和插入位置。114 收藏 -
Go 的 QueryRow 查询不到记录时,错误会在 Scan 阶段以 sql.ErrNoRows 返回。本文从查询条件、errors.Is、NULL 字段、类型转换和上下文五个角度排查,区分无数据与真正的数据库故障。233 收藏 -
Go 的 sort.Search 不是直接判断相等,而是在 [0,n) 中寻找比较函数第一次返回 true 的位置。排查结果错误时,先检查谓词是否单调,再处理 n 返回值和精确命中判断。163 收藏 -
Go 的 QueryRow 不在调用处直接返回查询错误,真正的读取、类型转换和无行判断都要从 Scan 处理。本文用一个单行查询示例说明列映射、sql.ErrNoRows、NULL 字段和 QueryRowContext 的边界。199 收藏 -
Go sort.Search 返回的是第一个满足条件的索引,不是目标值。本文用一个有序档位查找小项目,讲清索引读取、精确命中、插入位置与 n 的边界处理。145 收藏 -
Go encoding/xml 中 xmlattr 并不是独立的命名空间开关。本文说明 ,attr、namespace-URL local,attr 与 xml.Name.Space/Local 的关系,并给出 MarshalXMLAttr 和 UnmarshalXMLAttr 的边界用法。231 收藏 -
Go 的 math/bits 不会自动改变变量类型,但可以测出数值需要的有效位数,帮助你在 uint8、uint16、uint32 和 uint64 之间安全选择并检查溢出边界。166 收藏 -
Go 的 xmlattr 本质上是 encoding/xml 结构体标签里的 attr 选项。属性读不到或输出名称不对时,应依次核对属性名、字段可导出性、XMLName 和命名空间,再用 Marshal/Unmarshal 双向验证。360 收藏 -
Go math/bits.Mul 返回 hi 和 lo 后,如何判断乘积是否超出低半部,以及怎样用 Mul64、math/big 重建并核对完整结果。479 收藏 -
Go 的 encoding/xml 没有 xmlattr 关键字,XML 属性应使用 xml:"name,attr" 映射到导出字段。本文说明属性读取、嵌套元素、写回 XML、未知属性接收和常见空值排查方法。361 收藏 -
Go 中读取 uint64 乘法高位应使用 math/bits.Mul64,它返回完整乘积的 hi 高 64 位和 lo 低 64 位。本文说明最小写法、溢出判断、类型边界和测试对照,避免先相乘再移位导致高位丢失。163 收藏 -
Go 的 UnmarshalJSON 适合处理 JSON 表示与 Go 类型之间的边界,不应承载数据库、权限或完整业务校验。本文用别名类型、临时结构和错误分层说明如何限定自定义解码责任。433 收藏 -
Go math/big 的精度控制关键在于 big.Float 的尾数位数、舍入模式和 Accuracy 状态。本文说明如何用 SetPrec、SetMode 和 Acc 设定并检查精度,并比较 big.Int、big.Rat 与 big.Float 的适用边界。363 收藏