如果需要将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’ 加入切片,然后转换成字符串,结果输出的是

test

把上述字符换种方式加入切片

test1 = append(test1, 't', 'e', 's', 't', '1')

在转换成字符串就符合预期了

然后就意识到是 ASCII 的问题了,字符中的 ‘1’ 对应的十进制是49!!真是让人抓狂啊,这么简单的一个问题卡了好久。