Импортировать код из отдельного пакета / папки
У меня есть этот макет каталога:
/baba
biz.go # package baba
/hello
foo.go # package main
biz.go выглядит так:
package baba
func Foodd(z int) int {
return z + 5
}
и foo.go выглядит так:
package main
import (
"fmt"
"log"
)
func main() {
log.Fatal(Foodd(3))
}
в настоящее время это не компилируется, потому что Foodd
не признается Как мне импортировать baba
пакет в foo.go
?
Я предполагаю, что если я скомпилирую так, что он извлечет нужные файлы:
go build foo.go
Или мне нужно включить файлы из пакета baba в go build
команда? (Я надеюсь, что нет).
1 ответ
Вам необходимо импортировать baba
пакет, чтобы использовать его из вашего основного пакета. Это будет выглядеть примерно так:
package main
import (
"fmt"
"log"
"github.com/the1mills/myproject/baba"
)
func main() {
log.Fatal(baba.Foodd(3))
}
Импортированные пакеты указываются по имени пакета, которое обычно, но не всегда, является последним элементом пути импорта.
Обычно люди позволяют goimports найти правильный путь импорта и автоматически добавить его. Ваш выбранный редактор, вероятно, имеет goimports
интеграция.
Также посмотрите этот ответ для некоторых других ссылок и как настроить структуру каталогов.