陣列
//陣列指標
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...