Задать вопрос
@12rbah

Как избежать большого количества аргументов в функциях?

В общем писал программу, а потом понадобилось внести несколько дополнительных возможностей, из-за которых в функции вместо 2-3 аргументов теперь 5. Хороший ли вариант засунуть их все в какую-нибудь структуру или правильным решением будет переделать функцию так, чтобы не было необходимости в таком количестве аргументов?
  • Вопрос задан
  • 73 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
EvgenyMamonov
@EvgenyMamonov Куратор тега Go
Senior software developer, system architect
В идеале переделать.
Если переделать нет возможности - структуры будут однозначно лучше.
Еще есть вариант "функциональные опции" https://golang-blog.blogspot.com/2019/10/functiona...
Ответ написан
Комментировать
@ghostiam
На Go писатель, серверов пинатель.
Воспользуйтесь функциональными опциями с прописанными значениями по умолчанию
https://m.habr.com/ru/post/489296/

Либо заверните не обязательные поля в структуру и передавайте структуру как параметр функции.

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

Войдите, чтобы написать ответ

Похожие вопросы