#go #struct
#Вперед #структура
Вопрос:
Я читаю смешанные мнения о том, как называть структуры и файлы, которые их содержат. Мне также трудно найти подробную информацию о структурах из нескольких слов.
Каков наиболее стандартный способ присвоения имен моим структурам и файлам, которые их содержат, в следующем проекте?
У меня есть исполняемый проект с двумя структурами:
Foo
FooBar
Я хочу объявлять структуры в их собственном файле, чтобы я мог создавать тестовые файлы. Каждый из них будет импортирован в main.go
.
- Должен ли я называть структуры
PascalCase
? если нет, то как? - Как должны называться файлы go?
Редактировать:
Именно из-за этого документа я сначала использовал Pascal Case, но это структура из одного слова, и не показано, что она используется в отдельном файле. https://tour.golang.org/moretypes/2
Комментарии:
2. @icza итак, в моем случае лучше всего использовать файлы с именами:
FooBar.go
иFooBar_test.go
?3. Нет, это просто соглашение об именовании идентификатора Go. Вы могли бы называть свои файлы как
foobar.go
иfoobar_test.go
.4. Как называть ваши структуры и как называть ваши файлы — это два совершенно разных вопроса.
5. «Я хочу объявлять структуры в их собственном файле, чтобы я мог создавать тестовые файлы». Вы можете создавать тесты независимо от того, как вы называете свои структуры, в скольких файлах вы их декализируете или как вы называете эти файлы.
Ответ №1:
Эффективный пост в блоге go в официальном блоге Golang очень помогает в этом. В пакет названия раздела и смешанных крышек , как полагают icza специально полезным.
У меня также было это обсуждение с сообществом на официальном канале slack пару месяцев назад, и большинство согласились, что файлы всегда должны быть в нижнем регистре. Если имена слишком большие, вы можете использовать символы подчеркивания, будьте осторожны: сборка go будет игнорировать файлы, начинающиеся с _
, и не использовать определенные суффиксы, такие как _test.go
и имена OS / arch, такие как _amd64.go
или _linux.go
. Инструмент сборки будет использовать только эти последние в конкретных операционных системах / архитектурах. Это указано в документах по сборке.
Итак, если вы создаете структуру с именем FooBar
, ваш файл может быть foobar.go
или foo_bar.go
.