GO總結四容器與結構體

2021-10-21 06:26:28 字數 2933 閱讀 2786

1 陣列

定義方法

var 陣列名[大小] 型別

例子

package main

import "fmt"//匯入包必須使用,否則編譯報錯

func main()

fmt.println("arr2:",arr2)

fmt.println("arr == arr2",arr == arr2)//可以直接比較

var arr3 = [...]int//自動推導大小

fmt.println("arr3:",arr3)

arr4 := [3][4]int ,}

fmt.println("arr4:",arr4)

}

結果

陣列初始化很靈活。

2 切片

底層就是陣列

例子

package main

import "fmt"//匯入包必須使用,否則編譯報錯

func main() //起始位,結束位,容量

fmt.println("slice2:",slice2)

//切片擷取

var arr = [6]int

fmt.println("arr:",arr)

slice3 := arr[3:]//陣列下標3之後的

fmt.println("slice3:",slice3)

slice4 := arr[:3]//陣列下標3之前的

fmt.println("slice4:",slice4)

slice5 := arr[3:5]//陣列下標3和5之間的

fmt.println("slice5:",slice5)

slice5[1]=100

fmt.println("arr:",arr)//陣列也會改變

}

結果

和你所熟悉的其他語言map是差不多的

例子

package main

import "fmt"//匯入包必須使用,否則編譯報錯

func main()

//自動推導

//map2 := map[int]string

}

結果

import "fmt"//匯入包必須使用,否則編譯報錯

func changearr(arr[4]int)

func changearr1(arr*[4]int)

func changeslice(sliint)

func changemap(mmap map[int]string)

func main()

changearr(arr)

fmt.println("main arr:",arr)

changearr1(&arr)

fmt.println("main arr:",arr)

slice :=int

changeslice(slice)

fmt.println("main slice:",slice)

mmap :=make(map[int]string)

mmap[0] = "00"

mmap[1] = "11"

mmap[2] = "22"

mmap[3] = "33"

fmt.println("main mmap:",mmap)

changemap(mmap)

fmt.println("main mmap:",mmap)

}結果

map和切片是引用傳遞,陣列是值傳遞

package main

import "fmt"//匯入包必須使用,否則編譯報錯

type student struct

func changestr(stu student)

func main()

fmt.println(stu)

stu.id = 15

fmt.println(stu)

var p1* student

p1 = &stu

p1.id = 20

fmt.println(stu)

(*p1).id = 25 //通過指標操作*p1和p1等價

fmt.println(stu)

p2 := new (student)

p2.id = 10;

p2.name = "小明"

fmt.println(p2)

fmt.println("p1 == p2",p1==p2)

changestr(*p2)

fmt.println("main",p2)

}

結果

結構體是值傳遞。

同時,先提一下,乙個包裡的結構體,結構體裡的成員,乙個方法,首字母如果是小寫,相當於c++的私有變數,其他包不能用

go 修改結構體方法 go結構體方法

golang中的方法是作用在特定型別的變數上,因此自定義型別,都可以有方法,而不僅僅是struct。定義格式 func var struct name funcname var0,var1.return type package main import fmt type test struct na...

go語言結構體

go語言陣列可以儲存同一型別的資料 但在結構體中我們可以為不同項定義不同的資料型別 結構體是由一系列具有相同的型別或者不同型別的資料構成的資料集合 1.定義結構體 結構體定義需要使用type和struct語句。struct語句定義乙個新的資料型別,結構體中有乙個或者多個成員。type語句設定了結構體...

GO語言結構體

go語言的struct和c語言的很相似 簡單的struct定義 package main import fmt type test struct func main fmt.println a 或者 package main import fmt type test struct func main...