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