Функции в Go
Функции и методы
• Функции имеют четкие и понятные имена (глаголы для действий)
• Используется явный возврат значений (не прячем error)
• Обработка ошибок — всегда проверяется if err != nil
• Используются именованные возвращаемые значения для улучшения читаемости (по необходимости).
• Методы объявлены с указателем *Type для изменения состояния (если нужно).
Анонимная функция — это функция,, которую можно определить прямо там, где она нужна. В Go анонимные функции очень гибкие и применяются в нескольких случаях:
• Присвоение переменной. Анонимную функцию можно присвоить переменной и вызывать её позже.
• Вызов сразу после определения. Можно объявить анонимную функцию и сразу же вызвать её, обернув в скобки и добавив () в конце
Передача в качестве аргумента. Анонимные функции часто используют для передачи в другие функции, например, для обработки событий, сортировки, или работы с коллекциями
IIFE Immediately Invoked Function Expression
Это анонимная функция, которая определяется и вызывается сразу же, без явного имени и без предварительного присваивания переменной.
Модули
Обязательным файлом в корне директории, чтобы Go проект считался модулем, является файл go.mod.
Наличие файла go.mod позволяет инструментам Go понимать, что данный каталог — корень модуля, и использовать его для поиска зависимостей, разрешения импортов и управления версиями пакетов. Без этого файла Go не сможет правильно определить границы модуля и будет рассматривать проект как GOPATH-проект или не модуль вовсе.