当前位置: 首页 > 面试题库 >

参数和接收器有什么区别

酆翔宇
2023-03-14
问题内容

我正在关注Go教程,由于无法理解特定的方法签名而陷入困境:

func (p *Page) save() error {
    filename := p.Title + ".txt"
    return ioutil.WriteFile(filename, p.Body, 0600)
}

该文档解释如下:

该方法的签名如下:“这是一个名为save的方法,它的接收方p是指向Page的指针。它不带参数,并且返回错误类型的值。”

我不明白接收器是什么。我将其作为参数读取,但随后我期望参数位于中save()


问题答案:

接收者是声明方法的对象。

要向对象添加方法时,请使用此语法。

例如:http://play.golang.org/p/5n-N_Ov6Xz



 类似资料:
  • 问题内容: 查看下面显示的G​​o文档,我很难理解接收器和参数之间的区别: 该方法的签名如下:这是一个名为save的方法,该方法将指向Page的指针作为其接收者p。它不带任何参数,并返回错误类型的值。 问题答案: 该接收机是像在C#:在所述接收器和所述参数是,和。执行该函数时,参数引用参数的副本。接收方和参数之间的重要区别在于,当接收方是调用站点上的接口类型时,要调用的功能是动态而非静态确定的。

  • 问题内容: 我有一个定义两个重载方法的类 显然它们是不同的,尤其是。 两者之间有什么区别? 如何调用第一个方法?我正在使用-这正确吗? 问题答案: 第一个函数是单个参数的函数,必须提供该参数,并且只能有效地采用value 。除null以外的任何值都不会编译。第二个函数不接受任何参数,传递给它也不会编译。

  • 我试图了解两者之间是否有任何重大差异。在查看示例时,我注意到它使用了完全相同的二进制和arg(https://github.com/open-telemetry/opentelemetry-collector/blob/main/examples/demo/docker-compose.yaml). 唯一的区别是配置文件在导出器/接收器方面有所不同。因此,唯一的区别是使用什么endpoint来收集

  • groupingBy和Mapping可以互换吗?他们有什么不同? 对于collect()中的第三个参数,如果我使用collectors.toList()而不是collectors.toSet(),会得到相同的输出类型映射吗?我听说toList()是一个更流行的选项。

  • 客户端发送另一个请求,服务器再次挂起该请求。 当这种情况持续发生时,会使用多少线程?

  • 据我所知,两者都定义大小。没有?建议使用什么:或?如果我两个都用,哪一个比另一个好?