在围棋中,我试图将字符串解析为整数.我发现它的问题在文档中,它提到的语法如下:

ParseInt(s string, base int, bitSize int)

其中,s是要解析的字符串,base由字符串的前缀表示:基数16表示"0x",基数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字符串,base int,bitSize int)(I int64,错误)

无论如何,ParseInt总是返回int64.此外,

bitSize参数指定结果必须包含的整数类型

因此,基本上,YOUR bitSize参数只告诉您要解析的字符串值在解析后应该符合bitSize.如果不是,就会发生超出范围的情况.

如下面的PlayGround所示:strconv.ParseInt("192", 10, 8)(如您所见,解析后的值将大于最大值int8).

如果您想要将其解析为所需的任何值,只需在后面使用int8(i)(int8,int16,int32)即可.

P.S.因为您触及了如何转换为特定INTX的主题,所以我将概述一下,也可以转换为unsigned int.

Go相关问答推荐

如何在gocql中设置gocqlSYS标志?

Golang Cososdb-gremlin连接

CGO Linux到Windows交叉编译中的未知类型名称

如何在S汇编器中更高效地将全局数据加载到霓虹灯寄存器?

如何将 goose 迁移与 pgx 一起使用?

死锁 - 所有 goroutine 都处于睡眠状态(即使使用等待组)

Golang Fiber Render - 将数据发送到多个布局

这种合并排序的实现有什么问题?

htmx 表单 + gin 无法正确读取请求正文

Go - 永远停止带有上下文的循环

Kperf 构建失败

加密/椭圆:try 在无效点上进行操作

你如何在 Golang 代码中测试 filepath.Abs​​ 失败?

如何在 Golang http.Request 对象中读取自定义 ajaxParams

Gorm delete with clauses sqlmock 测试

在反向 GORM 中创建查询有一个关系

GOLANG:为什么 SetDeadline/SetReadDeadline/SetWriteDeadline 在使用 os.File.Fd() 时对文件不起作用?

为什么当我忽略 template.New() 程序可以成功运行?

如何在 Windows 中使用 github.com/AllenDang/giu 和 github.com/gordonklaus/portaudio 构建 GO 程序

Golang:每个键具有多个值的映射