关于数组和切片转换成 string的问题 菜鸟求解答

var buffer []byte = []byte{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j', 'k'} fmt.Println(string(buffer))

var buffer22 [4]byte = [4]byte{'a', 'h', 'j', 'k'} fmt.Println(string(buffer22))

为什么切片转换成string就可以 而数组转换成string就会报错 小弟菜鸟就解答

共 2 个回复


hooluupog

因为在编译期,array的长度是固定的,而string的长度可能是未知的(需要到运行时才能知道string的确切长度),将string转换为array时,array长度无法确定也就无法确定array的类型,而Go是静态类型的,不允许无类型的变量。

# 0

luckymouse

fmt.Println(string(buffer22[:]))

# 1