Menu
Coddy logo textTech

Методы против функций

Часть раздела Логика и управление потоком путешествия по GO на Coddy. Урок 10 из 68.

Хотя и методы, и функции выполняют операции в Go, они служат разным целям и имеют разные шаблоны объявления. Понимание этой разницы крайне важно для написания ясного, организованного кода.

Функция является самостоятельной и независимой. Она не принадлежит какому-либо определённому типу:

func calculateArea(width, height float64) float64 {
    return width * height
}

Метод прикрепляется к определённому типу через получатель. Он принадлежит этому типу и может получать доступ к его данным:

func (r Rectangle) area() float64 {
    return r.Width * r.Height
}

Ключевое различие заключается в том, как их вызывают. Функции вызываются напрямую по имени, а методы вызываются у экземпляров соответствующего типа с использованием точечной нотации. Благодаря этой связи методы идеально подходят для определения поведения, которое естественным образом относится к вашим пользовательским типам, тогда как функции хорошо подходят для операций общего назначения, которые не нужно связывать с конкретными структурами данных.

Попробуйте сами

В этом уроке нет задания по программированию.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком

Потренируйтесь самостоятельно: Онлайн-компилятор Go