go專家程式設計系列(7)方法

2021-10-20 18:53:26 字數 1678 閱讀 9396

type a struct

func

(a a)

name()

string

func

main()

fmt.

println

(a.name()

) fmt.

println

(a.name

(a))

}

變數a就是所謂的方法接收者,他會作為方法name的第乙個引數傳入

go中函式型別只和引數與返回值有關,方法本質上就是普通的函式

func

nameofa

(a a)

string

func

main()

值接收者與指標接收者

其他語法糖

type a struct

func

(a a)

getname()

string

func

(pa *a)

setname()

string

func

main()

pa :=

&a fmt.

println

(a.setname()

, a.name)

fmt.

println

(pa.

getname()

, a.name)

}

type a struct

func

(a a)

getname()

string

func

main()

f1 := a.getname//方法表示式

f1(a)

}

相當於

func

getname

(a a)

string

func

main()

f1 := getname

f1(a)

}

Go系列(二) 方法

方法宣告 package geometry import math type point struct type path point 函式 func distance p,q point float64 方法 p 方法的接收器 func p point distance q point float...

Go學習 10 方法

go 語言中同時有函式和方法。乙個方法就是乙個包含了接受者的函式,接受者可以是命名型別或者結構體型別的乙個值或者是乙個指標。所有給定型別的方法屬於該型別的方法集 方法只是乙個函式,它帶有乙個特殊的接收器型別,它是在func關鍵字和方法名之間編寫的。接收器可以是struct型別或非struct型別。接...

Go學習 8 方法

接收者 接收者型別 func t type methodname parameter list 相當於給接受者t新增了函式methodname,類似於js中的物件導向,給類新增方法,只不過go沒有物件導向,所以這麼搞 這樣的話,呼叫methodname就需要t.methodname 來呼叫了pack...