這裡不介紹陣列和切片的使用技巧,主要看下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者的區別。首先看下它們的定義 看乙個陣列的例子 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 ...
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 ...