БастыАудиоБалаларға арналған
Даня
Данядәйексөз келтірді1 ай бұрын
Можно пойти еще дальше. Вместо создания служебных функций можно создать специфический тип и предоставить Sort как метод так: package stringset type Set map[string]struct{} func New(...string) Set { ... } func (s Set) Sort() []string { ... } Это изменение делает клиент еще более простым. На пакет stringset будет только одна ссылка: set := stringset.New("c", "a", "b") fmt.Println(set.Sort()) Небольшой рефакторинг убирает бессмысленное имя пакета и дает выразительный API. Как упомянул Дейв Чейни (член команды проекта Go), мы достаточно часто находим служебные пакеты, которые управляют стандартными возможностями. Например, если мы решим иметь клиентский и серверный ­пакеты, куда нужно поместить общие типы? В этом случае одним из возможных решений будет объединение клиента, сервера и общего кода в единый пакет.
100 ошибок Go и как их избежать
100 ошибок Go и как их избежать
·
Тейва Харшани
100 ошибок Go и как их избежать
Тейва Харшанижәне т.б.

Кіру не тіркелу пікір қалдыру үшін