Одинаковое имя пакета в разных файлах - PullRequest
0 голосов
/ 13 мая 2019

В разных файлах в одной и той же папке одно и то же имя пакета.

a.go

package abc

type B struct {
}
b.go

package abc

func (b *B) Run() {
}

Может ли функция, определенная в файле b.go, обращаться к a.go без импорта чего-либо?

Что может быть причиной разделения кода на два разных файла?

Ответы [ 2 ]

4 голосов
/ 13 мая 2019

Может ли функция, определенная в файле b.go, получить доступ к a.go, ничего не импортируя?да

Что может быть причиной разделения кода на два разных файла?Это просто механизм структурирования, например, когда файл стал бы слишком большим в противном случае.

1 голос
/ 13 мая 2019

Да, публичные функции / переменные в a.go могут быть доступны через b.go и наоборот.Основная причина, по которой мы помещаем их в разные файлы, заключается в том, чтобы объединить все связанные методы и функции.Например: в сотруднике пакета:

  • Объединение всех методов прецедента вместе в файле (давайте назовем его usecase.go)
  • Объединение всех методов репозитория вместе в другом файле (давайте вызовемit repository.go)
  • Объединение всех констант / перечислений как констант в другом файле (назовем это constants.go)

Все это доступно в рамках одного сотрудника пакета домена.Каждый файл может получить доступ к другим файлам открытых переменных / функций.Здесь usecase.go GetEmployeeData () будет обращаться к repository.go> GetEmployeeForID (ID int) Аналогичным образом, тот же метод GetEmployeeData () будет обращаться к константе константы.go Employee_Type, чтобы определить некоторую логику на ее основе.

Мы группируем вещив файл и попробуйте сделать его маленьким и легко читаемым.Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...