当前位置 : 主页 > 编程语言 > java >

Golang中调用“方法”的简单理解

来源:互联网 收集:自由互联 发布时间:2023-03-22
如果声明函数的时候带有接收者,则意味着声明了一个方法,同时,这个方法会和指定的接收者的类型绑在一起。 如: func (m defaultMatcher) Search(feed *Feed, searchTerm string) ([]*Result, error) m

如果声明函数的时候带有接收者,则意味着声明了一个方法,同时,这个方法会和指定的接收者的类型绑在一起。

如:

func (m defaultMatcher) Search(feed *Feed, searchTerm string) ([]*Result, error) m defaultMatcher 声明接受者是defaultMatcher,如果声明函数的时候带有接收者,则意味着声明了一个方法。这个方法会和指定的接收者的类型绑在一起; feed *Feed, searchTerm string 表示输入参数是指向Feed类型的指针和字符串; []*Result, error 表示返回参数是指向Result类型的指针的切片和错误类型;

同时:

接受者有值接受者和指针接受者两种类型。值接收者使用值的副本来调用方法,而指针接受者使用实际值来调用方法(相当于内置类型和引用类型的区别),且为了匹配方法的接收者类型,会使用&和*进行转换。

对于结构体类型,无论是值接收者还是指针接受者,我们使用值或指针调用方法时,编译器都会正确地引用或者解引用对应的值,调用对应的方法。(也因为大部分方法在被调用后都需要维护接收者的值的状态,所以,建议使用指针接受者。)

但是对于接口类型,对于指针接收者,只能使用指针调用该方法;对于值接受者,可以用值或指针调用该方法

上一篇:K8s之workQueue简单理解
下一篇:没有了
网友评论