Go基礎學習 陣列與切片

2021-10-08 03:48:14 字數 2569 閱讀 2449

固定長度同一種資料型別元素的集合

//陣列宣告:

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...