Я сожалею, что не мог быть более конкретным в названии вопроса, но я читал некоторый код Go и столкнулся с объявлениями функций этой формы:
func (h handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
...
}
с https://github.com/mattermost/platform/blob/master/api/context.go
func (s *GracefulServer) BlockingClose() bool {
...
}
с https://github.com/braintree/manners/blob/master/server.go
Что делает (h handler)
и (s *GracefulServer)
между скобка означает? Что означает полное объявление функции, принимая во внимание значение между скобками?
редактировать
Это не дубликат В чем разница функций и методов в Go? : этот вопрос пришел ко мне, потому что я не знал, что было в скобках перед именем функции, а не потому, что мне было интересно, в чем разница между функциями и методами ... если бы я знал, что это объявление было методом, я бы не стал у меня был этот вопрос в первую очередь. Если когда-нибудь у меня возникнут те же сомнения, что и у меня, я не верю, что она будет искать «методы Голанга», потому что она не знает, что это так. Это все равно, что задаться вопросом, что означает буква «сигма» перед математическим выражением (не зная, что это означает суммирование), и кто-то говорит, что это дубликат различия между суммированием и чем-то другим.
Кроме того, короткий ответ на этот вопрос («это получатель») не является ответом на «в чем разница между функциями и методами».
n
элемент из списка в Haskell? , который находится во введении к изучению Haskell для большого блага, и получить ответы на свои вопросы без суеты об этом.