我想知道如何在golang中将uint64转换为big.Int?最短的方法。

我已经尝试过new(big.Int).SetInt64(int64(a uint64 number))

我不喜欢它,因为它的转换嵌套时间太长,如果存在,我宁愿使用内置函数。

最佳答案

最短最安全的方法是使用 Int.SetUint64() 方法:

var x uint64 = 10

i := new(big.Int).SetUint64(x)

fmt.Println(i) // Prints 10

Go Playground上尝试一下。

手动将uint64转换为int64时要小心(如您的示例),因为可能会发生溢出,但不会通知您,但最终会产生负值。

如果您可以确定该值适合int64,那么使用 big.NewInt() 函数会更短:
i := big.NewInt(int64(x))

Go Playground上尝试这个。

关于go - 如何在Golang中将uint64转换为big.Int?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49754100/

10-10 20:55