Не имея выходных данных из языка C/compiled, мне сложно справиться с использованием механизма Go packages для создания модульного кода.
В Python, чтобы импортировать модуль и получить доступ к нему, функции и многое другое, это простой случай
import foo
где foo.py - это имя модуля, который вы хотите импортировать в том же каталоге. В противном случае вы можете добавить пустой __init__.py
в подпапку и получить доступ к модулям через
from subfolder import foo
Затем вы можете обращаться к функциям, просто ссылаясь на них через имя модуля, например. y = foo.bar(y)
. Это позволяет легко отделять логические фрагменты кода друг от друга.
В Go, однако, вы указываете имя пакета в самом исходном файле, например.
package foo
в верхней части модуля 'foo', который затем можно импортировать через
import (
"foo"
)
а затем обратиться к нему через это, т.е. y := foo.Bar(x)
. Но то, что я не могу оборачивать, - это то, как это работает на практике. Соответствующие документы на golang.org кажутся краткими и направлены людям с большим опытом (любым) с использованием make файлов и компиляторов.
Может кто-нибудь, пожалуйста, ясно объяснить, как вы собираетесь модулизовать свой код в Go, правильную структуру проекта для этого и как работает процесс компиляции?