固定長度同一種資料型別元素的集合
//陣列宣告:
var a [2]
int//var 陣列名[長度]存放的型別
//陣列初始化:
//1,使用初始化列表來設定陣列元素的值
var a [3]
int//陣列會初始化為int型別的零值
var b =[3
]int
//使用指定的初始值完成初始化
//2,使用指定索引值的方式來初始化陣列
c :=[2
]int
//3,根據設定的陣列元素來自行確定陣列長度
var d=
[...
]int
//陣列的遍歷
name :=
[...
]string
//方式1
for i :=
0; i <
len(name)
; i++
//方式2
for i, v :=
range name
//多維陣列
//[[1 2] [3 4] [5 6]]
var a21 [3]
[2]int
a21 =[3
][2]
int,[2
]int,[
2]int,
}fmt.
println
(a21)
//多維陣列的遍歷
for_
, v1 :=
range a21
}//陣列是值型別(相當於複製黏貼)
a221 :=[3
]int
//[1 2 3]
a222 := a221 //[1 2 3] 相當於複製黏貼
a222[0]
=100
fmt.
println
(a221, a222)
可變長度同一種資料型別元素的集合
//slice宣告:make(t, size, cap)
a :=
make([
]int,2
,2)
//slice初始化:
var a=
intvar b =
intvar s [
]int
s =(s,1)
fmt.
println
(s)//output:[1]
//切片的底層就是乙個陣列,可以基於陣列通過切片表示式得到切片
a :=[5
]int
s := a[1:
3]// s := a[low:high] //左閉右開
fmt.
printf
("s:%v len(s):%v cap(s):%v\n"
, s,
len(s)
,cap
(s))
//output:s:[2 3] len(s):2 cap(s):4 //長度即hight-low
//支援
s := a[1:
]s := a[:3
]s := a[
:]
[
]int
fmt.
printf
(len
,cap)6
)fmt.
printf
(len
,cap)6
,8)fmt.
printf
(len
,cap)[
]int
)//...表示拆開切片
fmt.
printf
(len
,cap
)
//copy()複製切片
//切片是引用型別,但是copy()函式是將切片值賦值到另外乙個記憶體中,所以不受底層陣列的改變而改變
cop :=
intcop2 := cop //賦值
cop3 :=
make([
]int,3
,3)copy
(cop3, cop)
fmt.
println
(cop, cop2, cop3)
cop[0]
=100
fmt.
println
(cop, cop2, cop3)
//刪除切片元素
//刪除del切邊中的3元素
del :=
intdel =
(del[:2
], del1[3:
]...
)//修改了底層陣列
fmt.
println
(del)
//[1,2,4,5,6,6]
go陣列與切片
go陣列 陣列宣告 var variable name size variable type eg var balance 10 float32 陣列初始化 var balance 5 float32 初始化陣列中 中的元素個數不能大於 中的數字。如果忽略 中的數字不設定陣列大小,go 語言會根據元...
go陣列與切片
陣列是具有相同唯一型別的一組長度固定的資料項序列,這種型別可以是任意的原始型別,例如整形,字元型或者自定義型別。陣列長度必須是乙個常量的表示式,並且是乙個非負整數。陣列元素可以用個索引累讀取,陣列長度最大為2gb。宣告格式為 var identifier len type 複製 例如 var arr...
GO 陣列與切片
var 變數名 陣列的容量 型別 陣列的容量 型別 var a 4 int 4 int 或者var a 4 int 或者a 4 int 這幾個的結果為 1 2 3 0 接受長度有賦值的長度決定 package main import fmt func main a int 但是無法使用var a i...