Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 为什么这个函数在声明时有三个部分?_Go_Functional Programming - Fatal编程技术网

Go 为什么这个函数在声明时有三个部分?

Go 为什么这个函数在声明时有三个部分?,go,functional-programming,Go,Functional Programming,我试图理解如何在golang中测试AWS调用,但无法理解此函数发生了什么 func (m mockedReceiveMsgs) ReceiveMessageRequest(in *sqs.ReceiveMessageInput) sqs.ReceiveMessageRequest { // Only need to return mocked response output return sqs.ReceiveMessageRequest{ Request: &a

我试图理解如何在golang中测试AWS调用,但无法理解此函数发生了什么

func (m mockedReceiveMsgs) ReceiveMessageRequest(in *sqs.ReceiveMessageInput) sqs.ReceiveMessageRequest {
    // Only need to return mocked response output
    return sqs.ReceiveMessageRequest{
        Request: &aws.Request{
            Data:        &m.Resp,
            HTTPRequest: &http.Request{},
            Retryer:     aws.NoOpRetryer{},
        },
    }
}
我知道它是一个名为ReceiveMessageRequest的函数,它获取指向ReceiveMessage int的指针并输出ReceiveMessageRequest

但是这个部分叫什么? m mockedReceiveMsgs

我不明白为什么它不能作为普通参数传递。

您应该阅读有关struct的内容

m mockedReceiveMsgs,表示ReceiveMessageRequest是mockedReceiveMsgs结构的一个方法


在OOP中也可以理解这一点,类的方法ReceiveMessageRequest是mockedReceiveMsgs类型的方法,m是接收方。如果您有一个类型为mockedReceiveMsgs的变量x,那么您可以将其称为x.ReceiveMessageRequestarg,并且方法正文中的m将是x的副本。

:接收器通过方法名称前面的额外参数部分指定。该参数部分必须声明一个非可变参数,即接收器。请至少完成Go教程。它不需要很长时间,涵盖了所有的语言基础知识。