go - 为什么在声明此函数时将其分为三个部分?

标签 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: &aws.Request{
            Data:        &m.Resp,
            HTTPRequest: &http.Request{},
            Retryer:     aws.NoOpRetryer{},
        },
    }
}

我了解这是一个称为RecieveMessageRequest的函数,该函数接受一个指向RecieveMessage int的指针并输出一个RecieveMessageRequest

但是这个部分叫什么呢?(m mockedReceiveMsgs)
我不明白为什么不将其作为普通参数传递。

最佳答案

ReceiveMessageRequestmockedReceiveMsgs类型的方法,而m是接收者。如果您具有类型xmockedReceiveMsgs变量,则可以将其称为x.ReceiveMessageRequest(arg),方法主体中的m将是x的副本。

关于go - 为什么在声明此函数时将其分为三个部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60880079/

相关文章:

haskell - 使用函数式语言(例如 F#)的函数的参数名称

character-encoding - Go:使用 windows-1252 编码写入文件

go - 将用户存储在上下文中或其他地方?

json - 如何以 Sendgrid API 接受的格式将 html 嵌入到 json 中?

java - 如何将 Streams Prev 元素结果传递给下一个

functional-programming - 支持 Elm 中的功能模式匹配

f# - 在 F# 中,在有区别的联合中严格计算和内存

functional-programming - Ocaml 连接两个字符串使得 a ^ b = b ^ a

Golang SWIG 示例 2 : slice bounds out of range panic

string - 将十六进制转换为字母