gpt4 book ai didi

go - 将字符串解析为特定类型的 int(int8、int16、int32、int64)

转载 作者:IT老高 更新时间:2023-10-28 13:03:27 31 4
gpt4 key购买 nike

我正在尝试将字符串解析为 Go 中的整数。我发现的问题是在文档中提到的语法如下:

ParseInt(s string, base int, bitSize int)

其中,s 是要解析的字符串,base 隐含在字符串的前缀中:base 16 表示“0x”,base 8 表示“0”,并且否则以 10 为底。

bitSize 参数是我遇到问题的地方。根据 ParseInt 的文档,它指定结果必须适合的整数类型。位大小 0、8、16、32 和 64 对应于 int、int8、int16、int32 和 int64。

但是对于所有值,例如 0、8、16、32 和 64。我得到相同类型的返回值。即 int64 类型。

谁能指出我错过了什么。

代码:https://play.golang.org/p/F3LbUh_maY

最佳答案

根据 documentation

func ParseInt(s string, base int, bitSize int) (i int64, err error)

ParseInt 总是返回 int64 无论如何。而且

The bitSize argument specifies the integer type that the result must fit into

所以基本上你的 bitSize 参数只告诉你要解析的字符串值在解析后应该适合 bitSize。如果没有,就会超出范围。

就像这个 PlayGround : strconv.ParseInt("192", 10, 8)(如你所见解析后的值会大于int8的最大值)。

如果你想把它解析成你需要的任何值,只需在之后使用 int8(i) (int8, int16, >int32).

P.S.因为你提到了如何转换为特定的intX的话题,我概述一下也可以转换为unsigned int .

关于go - 将字符串解析为特定类型的 int(int8、int16、int32、int64),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30299649/

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