04.01 golang數組詳解

golang數組詳解

數組(array)就是由若干相同類型的元素組成的序列。先看一個示例:

var ipv4[4]uint8=[4]uint8{192,168,0,1}

在這條賦值語句中,我為剛聲明的變量ipv4賦了值。在這種情況下,變量名右邊的

類型字面量可以省略。如果它在函數里面,那麼關鍵字var也可以省略,但賦值符號必

須由變為:=。

類型字面量[4]uint8表明這個變量的類型是長度為4且元素類型為uint8的數組類

型。注意,數組的長度是數組類型的一部分。只要類型聲明中的數組長度不同,即使兩

個數組類型的元素類型相同,它們也是不同的類型。更重要的是,一旦在聲明中確定了

數組類型的長度,就無法改變它了。

golang數組詳解

數組類型的零值一定是一個不包含任何元素的空數組。一個類型的零值即為該類型

變量未被顯式賦值時的默認值。以ipv4為例,其所屬類型的零值就是[4]uint8{}。

在上述示例中,等號右邊的字面量表示該類型的一個值。我們可以忽略那個在方括

號中表示數組長度的正整數值,示例如下:

[...Juint8{192,168,0,1}

方括號中的特殊標記...表示需由Go編譯器計算該值的元素數量並以此獲得其長度。

索引表達式和切片表達式都可以應用於數組值,前者會得到該數組值中的一個元素,

而後者則會得到一個元素類型與之相同的切片值。此外,Go的內建函數1en和cap也都

可以應用於數組值,並都可以得到其長度。

當需要詳細規劃程序所用的內存時,數組類型非常有用。使用數組值可以完全避免

耗時費力的內存二次分配操作,因為它的長度是不可變的。

golang數組詳解


分享到:


相關文章: