2017-05-08 43 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

相關問題