如果需要将int类型变量的值加入到字节切片,byte()转换后一定要加字符’0’,不要傻傻的只用byte()转换!!!
练习算法的时候,有时候需要将字节切片转换字符串
如下代码:
func main() {
test1 := []byte{}
test1 = append(test1, 't', 'e', 's', 't', byte(1))
fmt.Println(string(test1))
}
本意是想将 ‘t’, ‘e’, ‘s’, ‘t’, ‘1’ 加入切片,然后转换成字符串,结果输出的是
把上述字符换种方式加入切片
test1 = append(test1, 't', 'e', 's', 't', '1')
在转换成字符串就符合预期了
然后就意识到是 ASCII 的问题了,字符中的 ‘1’ 对应的十进制是49!!真是让人抓狂啊,这么简单的一个问题卡了好久。