Golang學習筆記 04

2021-08-14 20:01:17 字數 1853 閱讀 7672

type stu struct 

// 僅屬於結構體stu的方法

func (s *stu)setname(name string)

func (s *stu)setage(age int) int

func main()

}

// 修改的是複製的n,而非原本的n

func (n myint)plusnoptr()

func (n *myint)plusptr()

func (n *myint)show()

func main()

/* plusnoptr: 0xc04200e0d8 // 位址與其他三個不一樣

plusnoptr後: 0xc04200e0d0, 1

plusptr: 0xc04200e0d0

plusptr後: 0xc04200e0d0, 2

*/// 不帶*的話使用的是值,對其進行修改不會影響到原值,因為值傳遞需要複製整個值,所以應該使用指標。

func main()
type mymath struct 

func main()

mm.show() //直接呼叫的是 myint的方法

}

type myinte***ce inte***ce 

type myint int

func (n myint)infunc()

func (n myint)test()string

func (n myint)test02()

type mystruct struct

func (m mystruct)infunc()

func (m mystruct)test()string

func display(mi myinte***ce)

func main()

/*myint infunc

myint string

mystruct infunc

mystruct string

*/

type hand inte***ce 

type human inte***ce

type myint int

func (n myint)grab()

func (n myint)eat()

func main()

m := make(map[inte***ce{}]inte***ce{})

m[1] = "a"

m["2"] =1

stu := student

m[stu] = stu

fmt.println(m) // map[: 1:a 2:1]

type student struct 

func main()

a = "2"

a =1

fmt.println(a)

b :=10

a = b // inte***ce可以承載任意型別

a =20

// b = a // cannot use a (type inte***ce {}) as type int in assignment: need type assertion

b,ok := a.(int) // 使用型別斷言

fmt.println(b, ok) // 20 true

}

04 自己的golang學習及速查筆記 函式

可以有多個返回值 所有引數都是值傳遞 slice map channel 函式可以作為變數的值 函式式程式設計 js 函式可以作為引數和返回值 小例子 把乙個無引數,無返回值的函式進行包裝,包裝成計時函式,可以列印消耗的時間 import fmt time func sleepsecond 包裝器 ...

Golang學習筆記

如果乙個method的receiver是 t,你可以在乙個t型別的例項變數v上面呼叫這個method,而不需要 v去呼叫這個method 即不需要 v method 如果乙個method的receiver是t,你可以在乙個 t型別的變數p上呼叫這個method,而不需要 p去呼叫這個method。i...

golang學習筆記

與c語法不同之處 1.引數列表中各個引數型別相同時可以只寫出最後乙個,如 add x,y int int 2.型別在引數名 變數 函式 後面 3.函式的左大括號要跟函式名同一行,否則編譯不過 4.函式定義要先寫關鍵字func在函式開頭 函式外的每個語句都要以func var等等關鍵字開頭 5.在包或...