go語言的陣列和切片區別

2022-02-18 07:40:36 字數 1012 閱讀 2160

這裡不介紹陣列和切片的使用技巧,主要看下2者的區別。

首先看下它們的定義:

看乙個陣列的例子:

var x[3]int = [3]int

var y[3]int = x

fmt.println(x,y)

y[0]=999

fmt.println(x,y)

輸出結果如下,可以發現y的內容變了,但是x沒有變

[1 2 3] [1 2 3]

[1 2 3] [999 2 3]

對上述**稍加變動,看乙個切片的例子:

var xint = int

var yint = x

fmt.println(x,y)

y[0]=999

fmt.println(x,y)

輸出結果如下,可見x和y的內容都變了

[1 2 3] [1 2 3]

[999 2 3] [999 2 3]

另有如下初始化、賦值方式都是語法錯誤的

var x[3]int = int

-----------------------------

var xint = [3]int

-----------------------------

var xint = int

var y[3]int = x

-----------------------------

var x[3]int = [3]int

var yint = x

可以得出結論:如官方文件所述,陣列是需要指定個數的,而切片則不需要。陣列賦值也可是使用如下方式,忽略元素個數,使用「...」代替

x:= [...]int

y := x

fmt.println(x,y)

y[0]=999

fmt.println(x,y)

go語言的陣列和切片區別

這裡不介紹陣列和切片的使用技巧,主要看下2者的區別。首先看下它們的定義 看乙個陣列的例子 varx 3 int 3 int vary 3 int x fmt.println x,y y 0 999 fmt.println x,y 輸出結果如下,可以發現y的內容變了,但是x沒有變 1 2 3 1 2 ...

go語言 陣列和切片

目錄切片 var variable name size variable type 預設值為0eg var ss 10 int var s1 5 int方法一 for i 0 i len arry i 方法二 for index,value range array 儲存了三個一維陣列,每個一位陣列長...

go 語言的陣列切片

建立陣列切片兩種方法 第一種是基與陣列,第二種是直接建立 1.第一種如下 定義乙個陣列 var myarray 10 int 10 int 基與myarray的前5個元素建立陣列切片 myslice myarray 5 基與從第5個元素開始的所有元素建立陣列切片 myslice myarray 5 ...