go - 无法在Golang中将字节转换为int

标签 go type-conversion byte

这很奇怪,但我无法将字节值转换为int。

这是代码:

fmt.Println("numMsgsByte is:", numMsgsByte)
numMsgsStr := string(numMsgsByte)
fmt.Println("numMsgsStr is:", numMsgsStr)
numMsgs, err = strconv.Atoi(numMsgsStr)
if err != nil {
    log.Println("error in msg conversion", err)
    return 0
}

终端打印出来:
numMsgsByte is: [5]
numMsgsStr is: 
counter.go:51: error in msg conversion strconv.Atoi: parsing "\x05": invalid syntax

这有什么问题吗?我该如何解决?

最佳答案

numMsgByte不是一个字节,它是一个[]byte,其中包含5(而不是“5”)。使用string(numMsgByte)将其转换为字符串时,将获得字符串“\ x5”。

您需要的是:int(numMsgType[0])

关于go - 无法在Golang中将字节转换为int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59215151/

相关文章:

c++ - 将两个字节转换为 16 位值的最有效方法?

go - 从 exec.Command 输出解析整数

unit-testing - Gomega 的 Equal() 可以处理多个值吗?

go - 是否可以像这样通过反射获取函数名称?

c - 如何将8位int8变量放入char变量中?

vb.net - 在 VB 中允许扩大转换

sql - 将总和转换为 float 的 Cast 语法

oop - OOP 语言等静态成员变量

Java从字节数组中获取字符串

arrays - Sonar 问题 : remove use of String(byte[])