继GO之旅,我遇到了下面的代码:如何将字符串存储在GO数组中?
var a [2]string
a[0] = "Hello"
a[1] = "World"
所以,数组的长度是inmutable和数组声明时设置。但是,你可以存储任何大小的字符串。
你为什么要这样做?
继GO之旅,我遇到了下面的代码:如何将字符串存储在GO数组中?
var a [2]string
a[0] = "Hello"
a[1] = "World"
所以,数组的长度是inmutable和数组声明时设置。但是,你可以存储任何大小的字符串。
你为什么要这样做?
在Go中,字符串是一个包含长度和指向字节数组的指针的固定长度结构体。
所以var a [2]string
为两个这样的结构体分配一个具有空间的数组。
a[0] = "Hello"
分配另一个数组来存储“你好”,并把一个指针指向这个,长度为a[0]
。
字符串就像只读的字节片。所以这段代码工作的原因是因为数组只需要为指针和一些元数据(字符串的长度)分配空间。
这里查看字符串的部分(底部):