go陣列 切片

2021-07-16 15:21:41 字數 4362 閱讀 8162

陣列

//陣列指標

fmt.println("---------陣列指標----------")

i := [...]int

var p *[10]int = &i

fmt.println(p)

fmt.println(*p)

x, y := 1, 2

j := [...]*int

fmt.println(j)

k := [2]int

l := [2]int

fmt.println(k == l)

//指向陣列的指標

m := new([5]int)

fmt.println(m)

//對某個元素進行操作

aa := [10]int{}

aa[1] = 2

fmt.println(aa)

bb := new([10]int)

bb[1] = 2

fmt.println(bb)

cc := [2][3]int,

}fmt.println(cc)

dd := [...][3]int,

}fmt.println(dd)

ff := [...][3]int,

}fmt.println(ff)

//如下是錯誤的方式

// ee := [...][...]int,

// }

// fmt.println(ee)

}

[ ]

[00]

[12][00

0][120]

[0000

1][000

01][41

3][413]

[412]---------陣列指標----------

&[0000

0000

01][00

0000

0001]

[0xc0820083a0

0xc0820083a8]

true

&[0000

0][020

0000

000]&[020

0000

000][[1 1 1] [2 2 2]]

[[1 1 1] [2 2 2]]

[[1 1 0] [2 2 2]]

切片

這裡寫**片
package main

import "fmt"

func main()

int{}

*/a := int{}

fmt.println(a)

a1 := int

fmt.println(a1)

var b int

fmt.println(b)

var c int = int{}

fmt.println(c)

var d = int{}

fmt.println(d)

//含頭不含尾

fmt.println("--------擷取------------")

e := [5]int

f := e[2:4]

g := e[:2]

h := e[2]

i := e[2:]

fmt.println(i)

fmt.println(h)

fmt.println(g)

fmt.println(f)

//3個元素 10個記憶體

fmt.println("--------make------------")

j := make(int, 3, 10)

fmt.println(j)

//長度,最大容量

fmt.println(len(j), cap(j))

m := byte

n := m[2:5]

fmt.println(string(n))

fmt.println(len(n), cap(n))

q := n[3:5]

fmt.println(string(q))

s1 := make(int, 3, 6)

fmt.printf("%p\n", s1) //記憶體位址

fmt.printf("%v %p\n", s1, s1)

//超過原有長度,就會重新分配記憶體

fmt.printf("%v %p\n", s1, s1)

//指向的記憶體位址

fmt.println("-----記憶體位址----")

ll := int

ll1 := ll[2:5] //345

ll2 := ll[1:3] //23

fmt.println(ll1, ll2)

ll1[0] = 9

fmt.println(ll1, ll2)

/////////

//////

//////

//////

/// mm := int

mm1 := mm[2:5] //345

mm2 := mm[1:3] //23

fmt.println(mm1, mm2)

mm1[0] = 9

fmt.println(mm1, mm2)

/////////

////copy///

//////

//////

////

o1 := int

o2 := int

copy(o1, o2) //o2拷貝到o1

fmt.println(o1, o2)

oo1 := int

oo2 := int

copy(oo2, oo1) //oo1拷貝到oo2

fmt.println(oo1, oo2)

ooo1 := int

ooo2 := int

copy(ooo1[2:4], ooo2[0:2]) //oo1拷貝到oo2

fmt.println(ooo1)

}

[1 3]

--------擷取------------

[3 4 5]

3[1 2]

[3 4]

--------make------------

[0 0 0]

3 10

cde3 6

fg0xc0820341b0

[0 0 0 1 2] 0xc0820341b0

[0 0 0 1 2 1 2 3] 0xc08202e180

-----記憶體位址----

[3 4 5]

[2 3]

[9 4 5]

[2 9]

[3 4 5]

[2 3]

[9 4 5]

[2 3 1 2 3 4 5]

[5 6 3 4]

[5 6]

[1 2 3 4]

[1 2]

[1 2 5 6]

go陣列 切片

1 如何定義陣列 陣列是具有相同型別且長度固定的一組連續資料。在go語言中我們可以使用如下幾種方式來定義陣列。方式一 var arr1 5 int 方式二 var arr2 5 int 方式三 var arr3 5 int輸出以上三個變數的值如下所示 arr1 0 0 0 0 0 arr2 1 2 ...

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