@stasboiko

Как правильно передать множество параметров в функцию в Golang?

Мне нужно передать множество параметров в функцию, например так:
user, err := CreateUser(r.Context(), body.Name, body.Email, body.FirstName, body.LastName,
		body.Birthday, body.Phone, body.Gender, body.Password, body.Status)

Это выглядит ужасно + в документации по го написано, что нужно передавать/принимать в функции не более 4-х параметров
Как сделать это правильно/красиво?
  • Вопрос задан
  • 180 просмотров
Решения вопроса 1
EvgenyMamonov
@EvgenyMamonov Куратор тега Go
Senior software developer, system architect
В таких случаях лучше передавать структуру как параметр.
Пример
type User struct {
    Name string
    Email string
    // все нужные поля далее
}

func CreateUser(r.Context(), user)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@nakem
В некоторых кейсах функциональные опции могут оказаться более подходящим решением.
Дейв Чейни подробно писал об этом https://dave.cheney.net/2014/10/17/functional-opti...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы