Импортировать код из отдельного пакета / папки

У меня есть этот макет каталога:

/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 интеграция.

Также посмотрите этот ответ для некоторых других ссылок и как настроить структуру каталогов.

Другие вопросы по тегам