golang 陣列和切片

2021-09-25 05:53:34 字數 1337 閱讀 3864

陣列和切片的建立

func main() 

// output:

[1 0]

ps: 陣列宣告時,所有元素預設值都是0。 一般很少這樣做,盡量自己初始化。

func main() 

// output:

panic: runtime error: index out of range

goroutine 1 [running]:

main.main()

/users/fenggese/workspace/golang/mod/test/test/main.go:7 +0x11

exit status 2

ps: 切片宣告時,cap=0 len=0 . 直接使用會panic.

數 組或

切片在創

建時務必

自己初始

化!

\color陣列或切片在建立時務必自己初始化!

陣列或切片在

建立時務

必自己初

始化!

陣列和切片的拷貝

func main() 

b := a

b[0] = 3

fmt.println(a)

fmt.println(b)

}// output:

[1 2]

[3 2]

b := a陣列b拷貝了乙份陣列a的內容,所以對b的操作,不會對a產生影響。

func main() 

b := a

b[0] = 3

fmt.println(a)

fmt.println(b)

}// output:

[3 2]

[3 2]

b := a切片b拷貝了乙份切片a的內容,此時切片a、b的內部陣列指標都指向同乙個陣列。 所以對b的操作,也會改變a。

g o語

言中所有

的傳參都

是值傳遞

,有些值

內部含有

指標變數

,就表現

出了引用

傳遞的特

點。

\colorgo語言中所有的傳參都是值傳遞,有些值內部含有指標變數,就表現出了引用傳遞的特點。

go語言中所

有的傳參

都是值傳

遞,有些

值內部含

有指標變

量,就表

現出了引

用傳遞的

特點。

(二)golang陣列和切片

golang中的陣列是一種由固定長度和固定物件型別所組成的資料型別。例如下面 var a 4 inta是乙個擁有4個int型別元素的陣列。當a一旦被宣告之後,元素個數就被固定了下來,在a這個變數的生命週期之內,元素個數不會發生變化。而此時a的型別就是 4 int,如果同時存在乙個b變數,為 5 in...

golang陣列,切片

陣列 同一種資料型別的固定長度序列 陣列的定義 var a len int 比如 var a 5 int 長度是陣列型別的一部分,因此,var a 5 int 和 var a 10 int 是不同的型別 陣列的初始化 func chushi var age1 5 int var age2 int v...

golang 陣列和切片的區別

陣列是內建 build in 型別,是一組同型別資料的集合,它是值型別,通過從0開始的下標索引訪問元素值。在初始化後長度是固定的,無法修改其長度。當作為方法的引數傳入時將複製乙份陣列而不是引用同一指標。陣列的長度也是其型別的一部分,通過內建函式len array 獲取其長度。注意 和c中的陣列相比,...