Вибачте, що я не міг бути більш конкретним у назві питання, але я читав деякий код 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? , що міститься у Вступі до Learn you Haskell for Great Good і отримайте відповіді на їх запитання без суєти.