Golang 陣列的定義和使用

2022-09-19 14:09:16 字數 1520 閱讀 1537

同一種型別的集合稱之為陣列,陣列是一組已編號且長度固定的資料項序列,陣列中可以是任意的相同型別,陣列的長度必須是乙個常量或常量表示式,陣列的索引是從0開始,到len(array) - 1 的長度,陣列的長度必須在宣告時就固定下來。在go語言中,型別控制的是非常嚴格的,比如:[2]int 和 [3]int 就是兩種不同的型別。

func main() 

a[0] = 1

a[1] = 2

// 宣告的時候初始化

b := [2]int

// 以元素的個數初始化

c := [...]int

// 以下標初始化

d := [4]int

// 以 new 初始化, 返回陣列的指標

e := new([5]int)

fmt.println(a)

fmt.println(b)

fmt.println(c)

fmt.println(d)

fmt.println(e)

// 輸出

// [1 2]

// [3 4]

// [5 6 7 8]

// [0 9 0 10]

// &[0 0 0 0 0]

}

func main() ,}

fmt.println(arr)

// 輸出:

// [[12 13 14] [15 16 17]]

}

能通過第一次的列印看出來,初始化出來的陣列都是值型別的,那麼陣列在函式間的傳遞也是值型別的嗎?

func arrprint(arr [4]int)  

func main()

arrprint(arr)

fmt.println("main:",arr)

// 輸出:

// arrprint: [1 2 100 4]

// main: [1 2 3 4]

}

能過上面的例子,可以發現,上現函式中修改了陣列中的值,但是 main 函式中的列印並沒有改變,所以可以確定,陣列在函式間傳遞的時候就是值傳遞。

這樣又會造成乙個問題,因為值傳遞是陣列間的複製,如果乙個陣列小的時候,對效能影響不會很大,但是當乙個陣列非常大的時候,對程式的效能就會造成很大的影響了,所以為了解決這個問題,在使用陣列進行傳值的時候一般都會使用位址傳遞,在函式中使用指標型別的陣列進行接收。

在實際開發的時候,因為陣列的擴充套件性不好,所以一般不使用陣列,基本上使用的都是切片

陣列因為是值型別,所以,在型別完全相同的情況下支援使用==!=比較

細節決定成敗!

個人愚見,如有不對,懇請斧正!

陣列的定義和使用

說到陣列,首先我們需要知道我們為什麼要定義陣列?方法返回值的時候只能返回乙個值,但是如果我們要返回多個值怎麼辦呢?這時候就需要用到陣列,可以把多個資料放在乙個陣列中,然後返回陣列,從而達到返回多個值的作用。那麼什麼是陣列呢?陣列是 相同資料型別的資料按 順序組成的一種 引用資料型別。陣列的定義分為兩...

陣列的定義和使用

一.陣列的定義 陣列從0開始,表示第乙個元素 1 root foundation77 mnt array 1 2 4 root foundation77 mnt echo 1 2 4 root foundation77 mnt 2 root foundation77 mnt array 1 one ...

java 陣列的定義和使用

1 基本概念 陣列 用於儲存多個相同型別資料的集合。優點 可以使用統一的方式進行管理。缺點 長度是固定的,有越界的風險。需要注意 陣列屬於引用資料型別,因此使用之前必須例項化。2 一維陣列的初始化方式 1 動態初始化 很常用 基本格式 資料型別 陣列名稱 new 資料型別 長度 方式一 int ar...