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

方法的接收者和参数之间有什么区别?

谭鹏云
2023-03-14
问题内容

查看下面显示的G​​o文档,我很难理解接收器和参数之间的区别:

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

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


问题答案:

该接收机是像this在C#:在x.f(a, b, c)所述接收器x和所述参数是abc。执行该函数时,参数引用参数的副本。接收方和参数之间的重要区别在于,当接收方是调用站点上的接口类型时,要调用的功能是动态而非静态确定的。



 类似资料:
  • 问题内容: 我正在关注Go教程,由于无法理解特定的方法签名而陷入困境: 该文档解释如下: 该方法的签名如下:“这是一个名为save的方法,它的接收方p是指向Page的指针。它不带参数,并且返回错误类型的值。” 我不明白接收器是什么。我将其作为参数读取,但随后我期望参数位于中。 问题答案: 接收者是声明方法的对象。 要向对象添加方法时,请使用此语法。 例如:http://play.golang.or

  • 问题内容: 我无法理解以下文本…这是否意味着空的构造函数?为什么拥有两个不同的版本很重要? https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html 在Java虚拟机级别,每个构造函数(第2.12节)都作为具有特殊名称的实例初始化方法出现。该名称由编译器提供。因为该名称不是有效的标识符,所以不能直接用Java编程语言编写的程序中使

  • 问题内容: 我一直以为功能和方法是相同的,直到我通过“ Swift编程语言”电子书学习Swift 之前。我发现我 不能greet(“John”, “Tuesday”)用来调用在类中声明的函数, Here is the code:- 当我在Objective-C中编程时,我从未意识到这种差异。 Swift中的函数和方法之间有什么区别? 在Swift中什么时候使用函数以及何时使用方法? 问题答案: 经

  • 我正在浏览微软的Rust教程,它是关于 实现函数,以便返回对插入向量中的值的引用 这里给出了解决方案,但它与我的不同之处在于它使用了 除了返回类型之外,我的和标准解决方案之间的另一个区别是,我只是简单地返回了参数,而标准解决方案使用复杂方式)。 我想知道我的解决方案是否有任何问题,本教程采取了另一种方式? 虽然@Masklin为我的问题提供了一个很好的答案,但它有点特定于我给出的示例,但没有直接解

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

  • 问题内容: 我试图破译以下功能: 我从http://blog.danlew.net/2014/09/15/grokking-rxjava- part-1/ 获得了一个很好的rxjava简介,但是它只是顺便提到了Observer,说您将在大多数情况下使用Subscriber从Observable发射到消费项目的时间。 有人可以向我解释 什么是观察者? 观察者与订户有何不同? 上面的代码段是做什么的?