gpt4 book ai didi

去打印大量

转载 作者:IT王子 更新时间:2023-10-29 02:22:42 28 4
gpt4 key购买 nike

我目前正在学习 Go Lang 教程,准确地说是“数值常量”。示例代码以以下语句开头:

const (
// Create a huge number by shifting a 1 bit left 100 places.
// In other words, the binary number that is 1 followed by 100 zeroes.
Big = 1 << 100
// Shift it right again 99 places, so we end up with 1<<1, or 2.
Small = Big >> 99
)

常量 Big 显然很大,我正在尝试打印它及其类型,如下所示:

fmt.Printf("%T", Big)
fmt.Println(Big)

但是,对于这两行,我都收到以下错误:

# command-line-arguments ./compile26.go:19: constant 1267650600228229401496703205376 overflows int

我会尝试将 Big 转换为其他类型,例如 uint64,它会因相同的错误而溢出,或者只是将其转换为字符串,但是在尝试 Big.String( ) 我收到以下错误:

Big.String undefined (type int has no field or method String)

看起来它的类型是 int,但我无法打印它或将它转换为任何东西,它会溢出所有方法。我该如何处理这个数字/对象以及如何打印它?

最佳答案

该值大于任何 64 位数字类型所能容纳的值,因此您无法直接操作它。

如果您需要编写只能使用 math/big 包进行操作的数字常量,则需要以包可以使用的格式序列化存储它。最简单的方法可能是使用以 10 为基数的字符串:

https://play.golang.org/p/Mzwox3I2SL

bigNum := "1267650600228229401496703205376"
b, ok := big.NewInt(0).SetString(bigNum, 10)
fmt.Println(ok, b)
// true 1267650600228229401496703205376

关于去打印大量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39966952/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com