在浏览GO之后,我遇到了以下代码:
var a [2]string
a[0] = "Hello"
a[1] = "World"
因此,数组的长度是不可变的,并在声明数组时设置。但是你可以在其中存储任何大小的字符串。
你为什么这样做?
答案 0 :(得分:1)
字符串就像只读字节片。所以这段代码的工作原因是因为数组只需要为指针和一些元数据(字符串的长度)分配空间。
请参阅此处的字符串部分(位于底部):
答案 1 :(得分:0)
在Go中,字符串是一个固定长度的结构,包含一个长度和一个指向字节数组的指针。
所以var a [2]string
为两个这样的结构分配一个带空格的数组。
a[0] = "Hello"
分配另一个数组来存储" Hello",并将指针指向此,并将长度放入a[0]
。