Методы против функций
Часть раздела Логика и управление потоком путешествия по GO на Coddy. Урок 10 из 68.
Хотя и методы, и функции выполняют операции в Go, они служат разным целям и имеют разные шаблоны объявления. Понимание этой разницы крайне важно для написания ясного, организованного кода.
Функция является самостоятельной и независимой. Она не принадлежит какому-либо определённому типу:
func calculateArea(width, height float64) float64 {
return width * height
}Метод прикрепляется к определённому типу через получатель. Он принадлежит этому типу и может получать доступ к его данным:
func (r Rectangle) area() float64 {
return r.Width * r.Height
}Ключевое различие заключается в том, как их вызывают. Функции вызываются напрямую по имени, а методы вызываются у экземпляров соответствующего типа с использованием точечной нотации. Благодаря этой связи методы идеально подходят для определения поведения, которое естественным образом относится к вашим пользовательским типам, тогда как функции хорошо подходят для операций общего назначения, которые не нужно связывать с конкретными структурами данных.
Попробуйте сами
В этом уроке нет задания по программированию.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Продвинутое управление потоком выполнения
Switch с использованием `fallthrough`Выход из вложенных цикловПродолжение конкретного циклаОператор `goto`Итоги: Продвинутое управление циклами4Проект: Простой список задач
Настройка проектаДобавление задачи2Структуры и методы
Определение методов для структурПолучатели по значениюПолучатели по указателюВыбор типа получателяМетоды против функцийИтоги: поведение структур5Карты: подробный разбор
Карты структурУказатели как значения картПроверка карт на nilСравнение картИтоги: счетчик частоты слов3Интерфейсы (Основы)
Что такое интерфейс?Определение интерфейсаРеализация интерфейсаИспользование интерфейсных типовПустой интерфейсУтверждение типаПереключатель типовИтоги: Фигуры и поведениеПотренируйтесь самостоятельно: Онлайн-компилятор Go