var a[4]
int//定義長度為4,型別為int的陣列,沒有初始化時就是預設值
b:=[4
]int
//定義的時候同時初值化
c:=[4
]int
//通過索引指定初始化
d:=[...
]int
//可以不定義陣列的長度,但是要初始化
fmt.
println
(a,b,c,d)
//執行結果:
//[0 0 0 0] [1 2 3 4] [2 0 0 5] [1 2 3]
type user struct
e:=[...
]user,,
} fmt.
println
(e)//執行結果:
//[ ]
e:=
[...][
2]int,,}
fmt.
println
(e)//執行結果
//[[90 90] [33 76]]
var b,a[4]
int
fmt.
println
(a==b)
fmt.
println
(a!=b)
//執行結果
/*true
false*/
x,y:=10,
2a:=
[...]*
intfmt.
println
(a)//執行結果
//[0xc0000a2058 0xc0000a2070]
a:=
[...
]int
p:=&a //獲取陣列的位址
p[1]+=
10 fmt.
println
(p[1])
//執行結果
//12
a:=
[...
]int
fmt.
println
(a[:8]
) fmt.
println
(a[5:7
])fmt.
println
(a[5:]
)//執行結果
/*[1 2 3 4 5 6 7 8]
[6 7]
[6 7 8 9 10]
*/
a:=
make([
]int,3
,5)//3是切片的長度,5是切片的容量
b:=make([
]int,3
)//若沒有定義切片的容量,預設和切片的長度一樣
fmt.
println
(a,len
(a),
cap(a)
) fmt.
println
(a,len
(b),
cap(b)
)//執行結果
/*[0 0 0] 3 5
[0 0 0] 3 3*/
b:=[4
]int
a:= b[1:
4]a=(a,5)
fmt.
println
(a)/*
執行結果:
[2 3 4 5]*/
b:=[4
]int
a:= b[1:
4]c:= b[1:
2]a=(a,c...
) fmt.
println
(a)/*
執行結果:
[2 3 4 2]*/
a :=
int b :=
make([
]int,3
)copy
(b, a)
fmt.
println
(a) fmt.
println
(b)/*
執行結果:
[1 2 3]
[1 2 3]*/
//若宣告b切片時,其長度比a切片長,多出來的長度的值取預設值
b :=
make([
]int,4
)//執行結果
//[1 2 3 0]
//若宣告b切片時,其長度比a切片短
b :=
make([
]int,2
)//[1 2]
//宣告b切片時,其長度被定義為0
b :=
make([
]int,0
)//
Go學習筆記 陣列和切片
陣列型別的值 以下簡稱陣列 的長度是固定的,而切片型別的值 以下簡稱切片 是可變長的。陣列的長度在宣告它的時候就必須給定,並且在之後不會再改變。可以說,陣列的長度是其型別的一部分。go 語言的切片型別屬於引用型別,同屬引用型別的還有後面會講到的字典型別 通道型別 函式型別等 而 go 語言的陣列型別...
Go學習筆記 陣列和切片
陣列 陣列是具有相同唯一型別的一組已編號且長度固定的資料項序列 同構的資料結構 這種型別可以是任意的原始型別,例如整型 字串或者自定義型別。陣列長度必須是乙個常量表示式,並且必須是乙個非負整數。陣列成都也是陣列型別的一部分,所以 5 int和 10 int是屬於不同型別的。陣列是一種值型別。陣列的編...
go 語言的陣列切片
建立陣列切片兩種方法 第一種是基與陣列,第二種是直接建立 1.第一種如下 定義乙個陣列 var myarray 10 int 10 int 基與myarray的前5個元素建立陣列切片 myslice myarray 5 基與從第5個元素開始的所有元素建立陣列切片 myslice myarray 5 ...