package main
import (
"fmt"
"reflect"
)
type A struct{}
func (a *A) Hello(v1 int, v2 string) (int, string, error) {
fmt.Println("hello I am A")
return 0, "", nil
}
func main() {
a := A{}
m0 := reflect.TypeOf(&a).Method(0).Type
for i := 0; i < m0.NumIn(); i++ {
fmt.Println("参数:", m0.In(i))
}
for i := 0; i < m0.NumOut(); i++ {
fmt.Println("返回值:", m0.Out(i))
}
fmt.Println(m0)
}
参数: *main.A
参数: int
参数: string
返回值: int
返回值: string
返回值: error
func(*main.A, int, string) (int, string, error)
由此发现,方法的第0个参数是接收者本身