繼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]
。
字符串就像只讀的字節片。所以這段代碼工作的原因是因爲數組只需要爲指針和一些元數據(字符串的長度)分配空間。
這裏查看字符串的部分(底部):