
go 的 `math/big` 包不支持常规整数的 `++` 或 `
在 Go 中处理超大整数(如超过 int64 范围的值)时,必须使用 math/big.Int 类型。然而,该类型是不可变结构体指针,不支持 i++、i ——这些语法在编译期即报错。因此,传统 for i := x; i 正确做法是将 for 循环的三部分全部显式替换为 *big.Int 的方法调用: 以下是一个完整、健壮的示例: ✅ 关键注意事项: 总结:big.Int 的循环本质是「面向对象风格的显式状态管理」。掌握 Set、Cmp、Add 三个核心方法,即可安全、清晰地实现任意精度整数的区间遍历,无需第三方库或反射黑魔法。
package main
import (
"fmt"
"math/big"
)
func main() {
start := big.NewInt(1000000000000000000) // 1e18
end := big.NewInt(1000000000000000005) // start + 5
step := big.NewInt(1)
// 安全初始化:避免复用 start 变量
i := new(big.Int).Set(start)
for i.Cmp(end) < 0 {
fmt.Println(i.String()) // 推荐显式调用 .String() 避免指针格式化干扰
i.Add(i, step) // i = i + step
}
}










