我正在尝试了解如何在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{},
},
}
}
我了解这是一个称为RecieveMessageRequest的函数,该函数接受一个指向RecieveMessage int的指针并输出一个RecieveMessageRequest
但是这个部分叫什么呢?
(m mockedReceiveMsgs)
我不明白为什么不将其作为普通参数传递。
最佳答案
ReceiveMessageRequest
是mockedReceiveMsgs
类型的方法,而m
是接收者。如果您具有类型x
的mockedReceiveMsgs
变量,则可以将其称为x.ReceiveMessageRequest(arg)
,方法主体中的m
将是x
的副本。
关于go - 为什么在声明此函数时将其分为三个部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60880079/