Почему эта функция имеет три раздела, когда она объявлена? - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь понять, как проверить AWS вызовы в golang и не могу понять, что происходит с этой функцией.

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)

Я не понимаю, почему он не передается как обычный параметр.

Ответы [ 2 ]

1 голос
/ 27 марта 2020

ReceiveMessageRequest - это метод типа mockedReceiveMsgs, а m - получатель. Если у вас есть переменная x типа mockedReceiveMsgs, то вы можете назвать ее как x.ReceiveMessageRequest(arg), и m в теле метода будет копией x.

0 голосов
/ 27 марта 2020

Вы должны прочитать о struct здесь .

(m mockedReceiveMsgs), что означает, что ReceiveMessageRequest является методом структуры mockedReceiveMsgs.

Вы можете понять то же самое в OOP, метод класса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...