2017-05-08 122 views
1

继GO之旅,我遇到了下面的代码:如何将字符串存储在GO数组中?

var a [2]string 
a[0] = "Hello" 
a[1] = "World" 

所以,数组的长度是inmutable和数组声明时设置。但是,你可以存储任何大小的字符串。

你为什么要这样做?

回答

0

在Go中,字符串是一个包含长度和指向字节数组的指针的固定长度结构体。

所以var a [2]string为两个这样的结构体分配一个具有空间的数组。

a[0] = "Hello"分配另一个数组来存储“你好”,并把一个指针指向这个,长度为a[0]

1

字符串就像只读的字节片。所以这段代码工作的原因是因为数组只需要为指针和一些元数据(字符串的长度)分配空间。

这里查看字符串的部分(底部):

https://blog.golang.org/slices

相关问题