在做项目的时候遇到问题,正常情况下,使用
p := []byte{0x00, 0xb2, 0x01, 0x5c, 0x00} // p的类型是 uint8
将 P 传值使用
但是将 内容 放在一个 string 的数组里面就不可以了,如下图
cardBill := []string{"0x00, 0xb2, 0x01, 0x5c, 0x00"}
打印发现,cardBill[0]的值是 string
我想把 string 转换成 uint8 但是失败了,尝试的方式:
[]byte(cardBill[0])
cardBill你存的字符串是"0x00, 0xb2, 0x01, 0x5c, 0x00"所以[]byte得到的是这个字符串对应的uint8,你需要对逗号分隔的每一项字符串转换成16进制的数字。 或者存储时 cardBill := []string{string(p)}即可。
第一种方案:按string存的时候直接存16进制对应的字符
第二种方法:获取cardBill[0]时将字符串解析为16进制
这两种方法都可以让他们内容是相同的