Go中的Big int范围

时间:2015-04-28 21:45:05

标签: go bigint

有没有办法在Go中循环两个big int值x和y之间的间隔?

for i: = x; i < y; i++ {
    // do something
}

1 个答案:

答案 0 :(得分:4)

使用大数字可能有点笨重,因为你需要为常量创建一个big.Int。除此之外,它是for语句的每个部分直接替换为处理大额的一个部分。

http://play.golang.org/p/pLSd8yf9Lz

package main

import (
    "fmt"
    "math/big"
)

var one = big.NewInt(1)

func main() {
    start := big.NewInt(1)
    end := big.NewInt(5)
    // i must be a new int so that it does not overwrite start
    for i := new(big.Int).Set(start); i.Cmp(end) < 0; i.Add(i, one) {
        fmt.Println(i)
    }
}